ArcGIS教程栅格像元大小和重采样
- 格式:docx
- 大小:17.12 KB
- 文档页数:2
a r c e n g i n e栅格数据使用总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIITag标签: 栅格数据 ArcEngine标签:栅格重分类分类:AE二次开发public static IRasterLayer SetViewShedRenderer(IRaster pInRaster,string sField,string sPath){IRasterDescriptor pRD = new RasterDescriptorClass();pRD.Create(pInRaster, new QueryFilterClass(), sField);IReclassOp pReclassOp = new RasterReclassOpClass();IGeoDataset pGeodataset=pInRaster as IGeoDataset;IRasterAnalysisEnvironment pEnv = pReclassOp as IRasterAnalysisEnvironment; IWorkspaceFactory pWSF=new RasterWorkspaceFactoryClass();IWorkspace pWS = pWSF.OpenFromFile(sPath, 0);pEnv.OutWorkspace = pWS;object objSnap = null;object objExtent = pGeodataset.Extent;pEnv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref objExtent, ref objSnap); pEnv.OutSpatialReference = pGeodataset.SpatialReference;IRasterLayer pRLayer = new RasterLayerClass();IRasterBandCollection pRsBandCol = pGeodataset as IRasterBandCollection; //定义波段集IRasterBand pRasterBand = pRsBandCol.Item(0);puteStatsAndHist();IRasterStatistics pRasterStatistic = pRasterBand.Statistics; //获取像元统计信息double dMaxValue = pRasterStatistic.Maximum ;double dMinValue = pRasterStatistic.Minimum ;INumberRemap pNumRemap = new NumberRemapClass(); //定义INumberRemap设定阈值pNumRemap.MapRange(dMinValue, 0, 0); //设置值区间,输出值pNumRemap.MapRange(0, dMaxValue, 1);IRemap pRemap = pNumRemap as IRemap; //转换成IRemapIRaster pOutRaster = pReclassOp.ReclassByRemap(pGeodataset, pRemap, false) as IRaster ; //调用ReclassByRemap方法pRLayer.CreateFromRaster(pOutRaster);return pRLayer;}栅格图层和矢量图层的属性表浏览if (pLyr is IFeatureLayer){DataTable pTable = new DataTable();IFeatureLayer pFealyr = pLyr as IFeatureLayer;IFeatureClass pFCls = pFealyr.FeatureClass;string shape = "";if (pFCls.ShapeType == esriGeometryType.esriGeometryPoint) shape = "Point";else if (pFCls.ShapeType == esriGeometryType.esriGeometryPolyline) shape = "Polyline";else if (pFCls.ShapeType == esriGeometryType.esriGeometryPolygon) shape = "Polygon";for (int i = 0; i < pFCls.Fields.FieldCount; i++){pTable.Columns.Add(pFCls.Fields.get_Field(i).Name);}IFeatureCursor pCursor = pFCls.Search(null, false);int ishape = pFCls.Fields.FindField("Shape");IFeature pFea = pCursor.NextFeature();while (pFea != null){DataRow pRow = pTable.NewRow();for (int i = 0; i < pFCls.Fields.FieldCount; i++){if (i == ishape){pRow = shape;continue;}pRow = pFea.get_Value(i).ToString();}pTable.Rows.Add(pRow);pFea = pCursor.NextFeature();}dataGridView1.DataSource = pTable;}else if (pLyr is IRasterLayer){IRasterLayer pRlyr = pLyr as IRasterLayer;IRaster pRaster = pRlyr.Raster;IRasterProps pProp = pRaster as IRasterProps;pProp.PixelType = rstPixelType.PT_LONG;if (pProp.PixelType == rstPixelType.PT_LONG){IRasterBandCollection pBcol = pRaster as IRasterBandCollection;IRasterBand pBand = pBcol.Item(0);ITable pRTable = pBand.AttributeTable;DataTable pTable = new DataTable();for (int i = 0; i < pRTable.Fields.FieldCount; i++)pTable.Columns.Add(pRTable.Fields.get_Field(i).Name);ICursor pCursor= pRTable.Search(null, false);IRow pRrow= pCursor.NextRow();while (pRrow != null){DataRow pRow = pTable.NewRow();for (int i =0 ;i<pRrow .Fields .FieldCount ;i++){pRow = pRrow.get_Value(i).ToString () ;}pTable.Rows.Add(pRow);pRrow = pCursor.NextRow();}dataGridView1.DataSource = pTable;}}IRasterWorkspace2 IRasterDataset CreateRasterDataset C#public IRasterDataset CreateFileRasterDataset(string directoryName, string fileName) {// This function creates a new img file in the given workspace// and then assigns pixel valuestry{IRasterDataset rasterDataset = null;IPoint originPoint = new PointClass();originPoint.PutCoords(0, 0);// Create the datasetIRasterWorkspace2 rasterWorkspace2 = null;rasterWorkspace2 = CreateRasterWorkspace(directoryName);rasterDataset = rasterWorkspace2.CreateRasterDataset(fileName, "IMAGINE Image", originPoint, 200, 100, 1, 1, 1, rstPixelType.PT_UCHAR, new UnknownCoordinateSystemClass(), true);IRawPixels rawPixels = null;IPixelBlock3 pixelBlock3 = null;IPnt pixelBlockOrigin = null;IPnt pixelBlockSize = null;IRasterBandCollection rasterBandCollection;IRasterProps rasterProps;// QI for IRawPixels and IRasterPropsrasterBandCollection = (IRasterBandCollection)rasterDataset;rawPixels = (IRawPixels)rasterBandCollection.Item(0);rasterProps = (IRasterProps)rawPixels;// Create pixelblockpixelBlockOrigin = new DblPntClass();pixelBlockOrigin.SetCoords(0, 0);pixelBlockSize = new DblPntClass();pixelBlockSize.SetCoords(rasterProps.Width, rasterProps.Height);pixelBlock3 = (IPixelBlock3)rawPixels.CreatePixelBlock(pixelBlockSize);// Read pixelblockrawPixels.Read(pixelBlockOrigin, (IPixelBlock)pixelBlock3);// Get pixeldata arraySystem.Object[,] pixelData;pixelData = (System.Object[,])pixelBlock3.get_PixelDataByRef(0);// Loop through all the pixels and assign valuefor (int i = 0; i < rasterProps.Width; i++)for (int j = 0; j < rasterProps.Height; j++)pixelData[i, j] = (i * j) % 255;// Write the pixeldata backSystem.Object cachePointer;cachePointer = rawPixels.AcquireCache();rawPixels.Write(pixelBlockOrigin, (IPixelBlock)pixelBlock3);rawPixels.ReturnCache(cachePointer);// Return raster datasetreturn rasterDataset;}catch (Exception ex){System.Diagnostics.Debug.WriteLine(ex.Message);return null;}}public IRasterWorkspace2 CreateRasterWorkspace(string pathName){// Create RasterWorkspaceIWorkspaceFactory workspaceFactory = new RasterWorkspaceFactoryClass();return workspaceFactory.OpenFromFile(pathName, 0) as IRasterWorkspace2;}#4楼[楼主] 2009-02-09 15:38 | 尤文之鹤public IRasterDataset tin2raster(string tempBathyTIN,string geoPath, string gridName) {string tinFolder = System.IO.Path.GetDirectoryName(tempBathyTIN);string tinName = System.IO.Path.GetFileName(tempBathyTIN);IRasterDataset rasterDataset = new RasterDatasetClass();try{string rasterPath = System.IO.Path.GetDirectoryName(geoPath);IWorkspaceFactory TinWF = new TinWorkspaceFactory();ITinWorkspace TinWK = TinWF.OpenFromFile(tinFolder,0)as ITinWorkspace; ITinAdvanced2 tinAd = TinWK.OpenTin(tinName) as ITinAdvanced2;IEnvelope extent = tinAd.Extent;IPoint origin = extent.LowerLeft;origin.X = origin.X - (5 * 0.5);origin.Y = origin.Y - (5 * 0.5);int nCol = (int)Math.Round(extent.Width / 5) + 1;int nRow = (int)Math.Round(extent.Height / 5) +1;ISpatialReference2 spatialRef = (ISpatialReference2)extent.SpatialReference;IWorkspaceFactory rasterWF = new RasterWorkspaceFactoryClass(); IRasterWorkspace2 workSpace = (IRasterWorkspace2)rasterWF.OpenFromFile(rasterPath,0);rasterDataset = workSpace.CreateRasterDataset(gridName, "GRID",origin,nCol,nRow,5,5,1,ESRI.ArcGIS.Geodatabase.rstPixelType.PT_FLOAT, spatialRef,true);IRasterBandCollection bandColl = (IRasterBandCollection) rasterDataset;IRasterBand rasterBand = bandColl.Item(0);IRawPixels rawPixels = (IRawPixels)rasterBand;IPnt blockSize = new DblPntClass();blockSize.X = nCol;blockSize.Y = nRow;IPixelBlock3 pixelBlock = (IPixelBlock3)rawPixels.CreatePixelBlock(blockSize);ITinSurface tinSurface = (ITinSurface)tinAd;IRasterProps rasterProps = (IRasterProps)rawPixels;object nodataFloat;//long nodataInt;object val = pixelBlock.get_PixelDataByRef(0);MessageBox.Show(val.ToString());double cellsize = 5;origin.X = origin.X + (5 * 0.5);origin.Y = origin.Y + (5 * nRow) - (5 * 0.5);nodataFloat = Convert.ToDouble(rasterProps.NoDataValue.ToString());tinSurface.QueryPixelBlock(origin.X,origin.Y,cellsize,cellsize,esriRasterizationType.esriElevationAsRaster,nodataFl oat,val);IPnt offset = new DblPntClass();offset.X = 0;offset.Y = 0;rawPixels.Write(offset,pixelBlock as IPixelBlock);}catch(Exception ex){MessageBox.Show(ex.ToString());}return rasterDataset;}ILayer pLayer = pAxMapControl.get_Layer(this.cmbLayer.SelectedIndex);IRasterLayer pRasterLayer = pLayer as IRasterLayer;IWorkspaceFactory2 pWorkspaceFactory2 = new RasterWorkspaceFactoryClass();IRasterWorkspace pRasterWorkspace;int Index = stIndexOf("\\");string filePath = pRasterLayer.FilePath.Substring(0, Index);string fileName = pRasterLayer.FilePath.Substring(Index + 1);pRasterWorkspace = (IRasterWorkspace)pWorkspaceFactory2.OpenFromFile(filePath, 0);IRasterDataset pRasterDataset = pRasterWorkspace.OpenRasterDataset(fileName);IGeoDataset pRasterGeoDataset = pRasterDataset as IGeoDataset;IWorkspaceFactory2 pWorkspaceFactoryShp = new ShapefileWorkspaceFactoryClass();//............................................................................IWorkspace pWorkspace = pWorkspaceFactoryShp.OpenFromFile(this.tbFolderPath.Text, 0);IConversionOp pConversionOp = new RasterConversionOpClass();ISpatialReference pSpatialReference = pRasterGeoDataset.SpatialReference;IGeoDataset pGeoDataset;//....................................................................pGeoDataset = pConversionOp.RasterDataToPolygonFeatureData(pRasterGeoDataset, pWorkspace, this.tbName.Text, true);IDataset pDataset1 = pGeoDataset as IDataset;IFeatureClass pFeatureClass = pDataset1 as IFeatureClass;IFeatureLayer pFeatureLayer = new FeatureLayerClass();pFeatureLayer.FeatureClass = pFeatureClass;pAxMapControl.ClearLayers();pAxMapControl.AddLayer(pFeatureLayer);pAxMapControl.Refresh();。
arcgis栅格数据面积【1.ArcGIS栅格数据简介】ArcGIS是一款强大的地理信息系统软件,它可以帮助用户处理和分析各种地理空间数据。
其中,栅格数据是一种重要的空间数据类型,它由一系列离散的像素组成,通常用于表示地表特征、植被、地形等。
在ArcGIS中,栅格数据的处理和分析功能十分丰富,包括面积计算等。
【2.栅格数据面积计算方法】在ArcGIS中计算栅格数据面积有多种方法,这里我们主要介绍两种:1.栅格转矢量:将栅格数据转换为矢量数据,然后计算面积。
这种方法适用于具有一定规律的栅格数据,如矩形、正方形等。
2.像素计算:在ArcGIS中,可以通过像素尺寸和像元值来计算栅格数据的面积。
这种方法适用于任意形状的栅格数据。
【3.具体操作步骤】以下以ArcGIS Desktop 10.x版本为例,详细介绍计算栅格数据面积的操作步骤:1.打开ArcGIS软件,导入栅格数据。
2.创建一个新图层,将导入的栅格数据添加到新图层中。
3.在图层属性面板中,找到“像素尺寸”字段,查看栅格数据的像素尺寸。
4.选择栅格数据所在的图层,点击工具栏中的“地理处理”按钮,选择“以像素为单位计算面积”工具。
5.在“以像素为单位计算面积”对话框中,设置需要计算的面积字段,并勾选“计算每个像元的面积”选项。
6.点击“执行”按钮,等待计算完成。
【4.实例演示】以一张500x500像素的栅格数据为例,每个像素值为1,我们可以通过以上方法计算出这张栅格数据的总面积。
首先,计算像素尺寸:500x500像素= 250,000像素。
然后,以像素为单位计算面积:250,000像素* 1像素= 250,000平方像素。
最后,将平方像素转换为实际面积单位,如平方米、亩等。
【5.总结与建议】计算栅格数据面积是ArcGIS中常见的应用之一。
在实际操作中,需要注意的是选择合适的计算方法和参数,以确保结果的准确性。
此外,根据实际需求,还可以进一步对栅格数据进行其他处理和分析,如重分类、统计分析等。
ArcGIS教程:栅格像元的提取一、按属性提取摘要基于逻辑查询提取栅格像元。
插图用法· 如果 Where 子句的求值结果是 True,则将为该像元位置返回初始输入值。
如果其求值结果是False,则将为像元位置指定 NoData。
· 对于输出栅格,将舍弃输入栅格中的所有额外项(值和计数除外)。
· 如果在 Where 子句中指定了除输入栅格的值以外的某一项,则将为此像元位置返回初始输入值。
· 当输入为多波段栅格时,将输出一个新的多波段栅格。
对输入多波段栅格中的每一单个波段都会进行相应分析。
默认输出格式是 Esri Grid 堆栈。
请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格,并且长度不能超过 9个字符。
· 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。
因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。
· 如果输入栅格为整型,那么输出栅格也为整型。
如果输入栅格为浮点型,则输出栅格也为浮点型。
语法ExtractByAttributes (in_raster, where_clause)返回值代码实例按属性提取 (ExtractByAttributes) 示例 1(Python 窗口)本示例将基于逻辑查询从栅格中提取像元,其中高程大于 1,000 米。
import arcpyfrom arcpy import envfrom arcpy.sa import *env.workspace = "C:/sapyexamples/data"attExtract = ExtractByAttributes("elevation", "VALUE > 1000") attExtract.save("c:/sapyexamples/output/attextract")按属性提取 (ExtractByAttributes) 示例 2(独立脚本)本示例将基于逻辑查询从栅格中提取像元,其中高程大于 1,000 米。
ArcGIS教程:提取栅格像元⼏种⽅式解析ArcGIS教程:栅格像元的提取⼀、按属性提取摘要基于逻辑查询提取栅格像元。
插图⽤法· 如果 Where ⼦句的求值结果是 True,则将为该像元位置返回初始输⼊值。
如果其求值结果是False,则将为像元位置指定NoData。
· 对于输出栅格,将舍弃输⼊栅格中的所有额外项(值和计数除外)。
· 如果在 Where ⼦句中指定了除输⼊栅格的值以外的某⼀项,则将为此像元位置返回初始输⼊值。
· 当输⼊为多波段栅格时,将输出⼀个新的多波段栅格。
对输⼊多波段栅格中的每⼀单个波段都会进⾏相应分析。
默认输出格式是 Esri Grid 堆栈。
请注意,Esri Grid 堆栈的名称不能以数字开头、不能使⽤空格,并且长度不能超过 9个字符。
· 如果输⼊内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。
因此,输出的多波段栅格只会具有三个波段,分别对应于输⼊图层显⽰中使⽤的多波段栅格。
· 如果输⼊栅格为整型,那么输出栅格也为整型。
如果输⼊栅格为浮点型,则输出栅格也为浮点型。
语法ExtractByAttributes (in_raster, where_clause)返回值代码实例按属性提取 (ExtractByAttributes) ⽰例 1(Python 窗⼝)本⽰例将基于逻辑查询从栅格中提取像元,其中⾼程⼤于 1,000 ⽶。
import arcpyfrom arcpy import envfrom arcpy.sa import*env.workspace = "C:/sapyexamples/data"attExtract = ExtractByAttributes("elevation", "VALUE > 1000") attExtract.save("c:/sapyexamples/output/attextract")按属性提取 (ExtractByAttributes) ⽰例 2(独⽴脚本)本⽰例将基于逻辑查询从栅格中提取像元,其中⾼程⼤于 1,000 ⽶。
arcgis栅格数据重分类ArcGIS栅格数据重分类是一种在地理信息系统中对栅格数据进行重新分类的操作。
它通过将原始栅格数据中的像元值重新分配给指定的类别,从而改变数据的表现形式和含义。
栅格数据重分类是GIS中常用的数据处理方法之一,它可以用于各种领域的分析和可视化,如土地利用/覆盖分类、遥感影像分类、洪水风险评估等。
首先,栅格数据重分类需要先选择要重分类的栅格数据。
在ArcGIS中,用户可以通过添加栅格数据到地图中来选择要处理的数据。
可以是已有的栅格数据集,也可以是新创建的栅格数据。
在选择好栅格数据后,进一步操作是设置重分类的参数。
在ArcGIS中,用户可以通过打开栅格数据的属性表来设置重分类方案。
属性表中列出了每个像素的像元值以及相应的属性。
在栅格数据重分类中,用户可以根据自己的需求定义不同的像元值到属性的映射规则。
接下来,用户需要定义映射规则。
这可以通过在属性表上创建一个新的列来实现。
用户可以为每个像元值指定相应的属性值,以实现栅格数据的重分类。
在确定映射规则后,用户可以将要素值预先定义为某个属性值,也可以创建自定义公式来计算属性值。
然后,用户需要确定重分类的方法。
在ArcGIS中,有多种重分类方法可供选择。
常见的重分类方法包括自然分类、等间距分类、等数量分类等。
自然分类是根据数据分布的特点来进行分组,使得每个组内的数据值接近;等间距分类是根据数据的最大值和最小值来将数据进行等间距划分;等数量分类是根据数据值的数量来进行均分。
用户可以根据具体的需求选择适合的重分类方法。
最后,在完成设置后,用户可以执行栅格数据重分类操作。
在ArcGIS中,用户可以通过点击“重分类”按钮来完成该操作。
系统会自动根据用户设置的参数和规则对栅格数据进行处理,并生成一个新的重分类后的栅格图层。
栅格数据重分类具有广泛的应用价值。
通过对栅格数据进行重分类,可以获得更具有可理解性的数据,从而为地理分析和空间决策提供支持。
ArcGIS必会的几个工具的应用--提取、分割、融合、裁剪(矢)、合并、追加、镶嵌、裁剪(栅)、重采样GIS思维今天我们来聊聊ArcGIS中常用你又必须掌握的几个工具,如筛选、分割、融合、裁剪(矢量)、合并、追加、镶嵌、裁剪(栅格)、重采样。
本次文章我们会按矢量和栅格两部分来介绍几个工具。
这个是ArcGIS的套路,也是大部分GIS类软件的套路,将矢量和栅格分开来。
关于矢量和栅格的区别我们在GIS思维发布的《ArcGIS 10.X 入门实战视频教程(GIS思维)》介绍的较为清楚,我们不加以赘述。
本次文章的分享,也是我们《ArcGIS 10.X 入门实战视频教程(GIS思维)》的章节内容,所以要观看视频课程,获取文章分享的数据与课件可以报名参加我们的课程。
下有链接。
1、筛选第一个工具,我们来看下比较简单的筛选工具的应用。
筛选(select)的用法:从输入要素类或输入要素图层中提取要素(通常使用选择或结构化查询语言 (SQL) 表达式),并将其存储于输出要素类中。
我们首先来看下案例数据-福建的各县行政区划矢量图。
图1-1 图1-2该数据属性表中,有NAME和city等字段,其中NAME代表区县名,city代表区县所在的地级市城市编码。
例如,闽侯县归属福州市(3501),仙游县归属莆田市(3503)。
那么,要筛选出福州下辖的所有区县,只要利用筛选工具选出city字段是3501的记录就可。
✧打开筛选工具,分析工具→提取分析→筛选图1-3✧有如下图的参数设置,点击确定,就得到我们想要的结果。
图1-4运行结果如下。
具体操作,可以观看学习如上所述视频教程。
图1-52、分割现在我们在裁剪中福建的各县行政区划矢量图fj基础上又有了福建省各地级市的行政区划图fj5(网络数据,仅供学习参考使用),如下图。
那我们的问题来了,我们要如1中那样筛选出福建九个地级市(福州、厦门、莆田、泉州、漳州、龙岩、三明、南平、宁德)区县划数据,当然我们可以如1中操作9次得到我们的结果,但这样一来操作就麻烦了,万一你来个全国地级市,那不是坑爹,所以为了提高效率我们引入了分割(split)工具的应用。
arcgis栅格数据重分类
ArcGIS栅格数据重分类是在ArcGIS软件中用于数据分析和可视化
的一种常见技术。
通过栅格数据重分类,可以改变原始栅格数据中特
定像元的值,从而更容易进行下一步处理。
在使用ArcGIS软件进行栅
格数据重分类之前,你需要将数据集导入到ArcGIS软件中。
ArcGIS软件中提供了很多重分类方法,包括等距重分类、平面变
换等。
在等距重分类时,可以指定新的像元值的范围,然后将原始栅
格数据中的所有像元值捆绑到新的像元值上。
此外,还可以选择根据
特定值来重分类,即在指定的特定像元值上添加新的像元值。
平面变换是ArcGIS软件提供的另一种栅格数据重分类方法。
该方
法在栅格数据中查找局部相似区域,并将这些区域重组成新的像元值。
此外,还可以选择仅重新建立一个不同的层次化结构,其中每个值都
有一个独特的像元值。
在ArcGIS软件中,也可以使用双线性内插法栅格数据重分类。
这种方法将原始栅格数据转换为不同尺度的栅格,并为新的栅格数据
分配新的像元值。
此外,还可以使用矢量转栅格、栅格转矢量等技术来改变原始栅
格数据。
例如,在使用栅格转矢量时,可以将栅格数据转换为不同形
状的矢量点,从而更容易被分析、可视化。
总之,ArcGIS软件提供了很多与栅格数据重分类有关的方法,如
等距重分类、平面变换、双线性内插法、矢量转栅格等,这些方法都
可以用来改变原始栅格数据的像元值,以便在进行数据分析和可视化
时能得到更好的效果。
ArcGIS必会的几个工具的应用--提取、分割、融合、裁剪(矢)、合并、追加、镶嵌、裁剪(栅)、重采样GIS思维今天我们来聊聊ArcGIS中常用你又必须掌握的几个工具,如筛选、分割、融合、裁剪(矢量)、合并、追加、镶嵌、裁剪(栅格)、重采样。
本次文章我们会按矢量和栅格两部分来介绍几个工具。
这个是ArcGIS的套路,也是大部分GIS类软件的套路,将矢量和栅格分开来。
关于矢量和栅格的区别我们在GIS思维发布的《ArcGIS 10.X 入门实战视频教程(GIS思维)》介绍的较为清楚,我们不加以赘述。
本次文章的分享,也是我们《ArcGIS 10.X 入门实战视频教程(GIS思维)》的章节内容,所以要观看视频课程,获取文章分享的数据与课件可以报名参加我们的课程。
下有链接。
1、筛选第一个工具,我们来看下比较简单的筛选工具的应用。
筛选(select)的用法:从输入要素类或输入要素图层中提取要素(通常使用选择或结构化查询语言 (SQL) 表达式),并将其存储于输出要素类中。
我们首先来看下案例数据-福建的各县行政区划矢量图。
图1-1 图1-2该数据属性表中,有NAME和city等字段,其中NAME代表区县名,city代表区县所在的地级市城市编码。
例如,闽侯县归属福州市(3501),仙游县归属莆田市(3503)。
那么,要筛选出福州下辖的所有区县,只要利用筛选工具选出city字段是3501的记录就可。
✧打开筛选工具,分析工具→提取分析→筛选图1-3✧有如下图的参数设置,点击确定,就得到我们想要的结果。
图1-4运行结果如下。
具体操作,可以观看学习如上所述视频教程。
图1-52、分割现在我们在裁剪中福建的各县行政区划矢量图fj基础上又有了福建省各地级市的行政区划图fj5(网络数据,仅供学习参考使用),如下图。
那我们的问题来了,我们要如1中那样筛选出福建九个地级市(福州、厦门、莆田、泉州、漳州、龙岩、三明、南平、宁德)区县划数据,当然我们可以如1中操作9次得到我们的结果,但这样一来操作就麻烦了,万一你来个全国地级市,那不是坑爹,所以为了提高效率我们引入了分割(split)工具的应用。
ArcGIS教程:栅格像元大小和重采样
不同的栅格数据集不需要使用相同的像元分辨率进行存储。但在处理多个数据集时,最好使
用相同的像元分辨率。将多个不同分辨率的栅格数据集输入任一ArcGIS Spatial Analyst 扩展
模块工具时,会自动将一个或多个输入数据集重采样为输入数据集的最粗糙分辨率。
在默认情况下,使用最邻近分配重采样技术。这是因为它同时适用于离散数据和连续数
据,而其他重采样类型(双线性插值和三次卷积插值)只适用于连续数据。使用重采样技术是
很有必要的,因为输入像元的中心很少能与变换到所需分辨率后的像元中心对齐。在合并不
同分辨率的栅格之前,可以使用重采样工具利用双线性和三次卷积技术作为预处理步骤。
可以使用像元大小环境参数来控制默认重采样分辨率,在该参数中可指定工具是使用输
入栅格的最小分辨率还是使用定义的特定像元大小。
如下图所示,在分析环境中设置的像元大小比工具中的输入栅格的像元大小要粗糙。执
行时,会首先将输入栅格重采样到较粗糙的分辨率,然后应用该工具。
执行分析时,请确定所设置的像元大小是否合适。例如,当像元大小为 5 千米时,不
太可能研究鼠标移动。五千米的像元可能更适用于研究全球变暖对地球的影响。
重采样
要找到重采样输出栅格上每个像元应采用的值,必须将输出栅格中每个像元的中心映射
到原始输入坐标系。每个像元中心坐标都会反向变换,以确定该点在原始输入栅格上的位置。
确定输入位置后,将根据输入栅格中邻近的像元为输出位置分配一个值。输出像元中心很少
能与输入栅格像元中心准确对齐。因此,多种技术已开发出来,以根据点相对于输入栅格像
元中心的位置以及与这些像元相关联的值来确定输出值。用于确定输出值的三种技术分别为
最邻近分配法、双线性插值法和三次卷积插值法。每种技术分配输出值的方式都不同。因此,
分配到输出栅格像元的值可能由于所使用技术的不同而有所差异。
最邻近分配法
因为最邻近分配法不会更改输入像元的值,它是用于离散(分类)数据的重采样技术。将
输出栅格数据集中像元中心的位置定位到输入栅格后,最邻近分配法将确定输入栅格上最近
的像元中心位置并将该像元的值分配给输出栅格上的像元。
最邻近分配法不会更改输入栅格数据集中像元的任何值。输入栅格中的值 2 在输出栅
格中仍将为 2,决不会为 2.2 或2.3。由于输出像元值保持不变,因此最邻近分配法应该用
于名目数据或序数数据,其中每个值都表示一个类、一个成员或一个分类(分类数据,如土
地利用、土壤或森林类型)。
考虑到根据输入栅格创建的输出栅格会在操作中旋转 45°,因此将进行重采样。对于
每个输出像元,都要从输入栅格中获取值。在下图中,输入栅格的像元中心为灰色点。输出
像元为绿色阴影。正在处理的像元为黄色阴影。在最邻近分配法中,将确定与正在处理的像
元中心(红色点)最邻近的输入栅格像元中心(橙色点),并将其指定为正在处理的像元(黄色阴
影)的输出值。对输出栅格中的每个像元都重复此过程。
双线性插值法
双线性插值法使用四个最邻近输入像元中心的值来确定输出栅格上的值。输出像元的新
值是这四个值的加权平均值,将根据它们与输出像元中心的距离进行调整。与最邻近分配法
相比,此插值法可生成更平滑的表面。
下图与最邻近插值法的图例一样,输入栅格的像元中心为灰色点,输出像元为绿色阴影,
要处理的像元为黄色阴影。对于双线性插值法,先确定与正在处理的像元中心(红色点)最邻
近的四个输入像元中心(橙色点),然后计算其加权平均值,再将所得的值指定为正在处理的
像元(黄色阴影)的输出值。
由于输出像元值是根据输入像元的相对位置和值计算的,因此对于由某个已知点或现象
的位置来决定分配像元值的数据(即连续表面),双线性插值法是首选方法。机场的高程、坡
度、噪音强度以及河口附近地下水的盐度都是表示为连续表面的现象,最适合使用双线性插
值法进行重采样。
三次卷积插值法
三次卷积插值法与双线性插值法类似,它是通过 16 个最邻近输入像元中心及其值来计
算加权平均值。
下图演示了如何计算三次卷积插值法的输出值。先确定与正在处理的像元中心(红色点)
最邻近的 16 个像元中心(橙色点),然后计算其加权平均值,再将所得的值指定为要处理的
像元(黄色阴影)的输出值。
与双线性插值法相比,三次卷积插值法倾向于锐化数据的边缘,因为计算输出值时涉及
的像元较多。
重采样和数据类型
不应对分类数据使用双线性插值法或三次卷积插值法,因为输出栅格数据集中不会保留
类别。但是,这三种技术均可用于连续数据,其中最邻近法将生成块状输出,双线性插值法
将生成更平滑的结果,三次卷积插值法将生成最清晰的数据。