ArcGIS在栅格数据处理中的应用初探

合集下载

arcgis中栅格归一化处理

arcgis中栅格归一化处理

arcgis中栅格归一化处理【1.栅格归一化处理概述】栅格归一化处理是地理信息系统(GIS)领域中一种重要的数据处理方法。

栅格数据是由像素组成的,像素具有不同的数值,代表不同的地物属性。

栅格归一化处理旨在将不同像素值转换为统一的数值范围,以便于后续的数据分析和处理。

【2.ArcGIS中栅格归一化处理方法】在ArcGIS软件中,栅格归一化处理主要包括以下几种方法:1.重采样:通过重新采样将原始像素值转换为新的像素值。

重采样方法包括最邻近插值、双线性插值等。

2.直方图均衡化:增强图像对比度,使像素值分布更加均匀。

通过直方图均衡化,可以提高数据的可读性和可视化效果。

3.标准化:将像素值转换为0和1之间的标准化值。

标准化处理可以消除原始数据量纲和数值差异,便于后续数据分析。

【3.栅格归一化处理的应用实例】以下是一个栅格归一化处理的应用实例:假设我们有一幅遥感图像,其中像素值范围为0-100。

通过栅格归一化处理,可以将像素值转换为0-1之间的标准化值。

这样一来,原始图像中的像素值差异得到消除,数据变得更加统一。

【4.注意事项与建议】在进行栅格归一化处理时,请注意以下几点:1.选择合适的重采样方法,以保证图像质量和数据分析效果。

2.直方图均衡化可能导致数据失真,使用时需谨慎。

可以先进行直方图均衡化,再进行标准化处理。

3.栅格归一化处理前,了解数据分布特点,选择合适的处理方法。

4.栅格归一化处理后,需对数据进行进一步分析或可视化,以验证处理效果。

通过以上步骤,您可以在ArcGIS中进行栅格归一化处理,提高数据的可读性和实用性。

arcgis中栅格归一化处理

arcgis中栅格归一化处理

arcgis中栅格归一化处理摘要:一、栅格归一化处理的意义二、ArcGIS 中栅格归一化处理的方法三、注意事项及技巧正文:栅格归一化处理是遥感图像处理中常见的操作,主要是将栅格数据按照一定比例进行缩放,使得栅格数据具有统一的尺度,便于后续的分析。

在ArcGIS 中,栅格归一化处理主要通过两种方式实现:一种是使用ArcToolbox 中的“Focal Statistics”工具,另一种是使用Python 编程语言调用ArcGIS API。

一、栅格归一化处理的意义栅格归一化处理的主要意义在于消除不同遥感图像间的尺度差异,使得不同图像间的数据具有可比性。

在遥感图像分析中,经常需要将不同时间、不同传感器的图像进行对比分析,这时候就需要对图像进行归一化处理,使得图像具有统一的尺度。

另外,栅格归一化处理还可以消除图像中由于像素值过大或过小而导致的显示问题。

二、ArcGIS 中栅格归一化处理的方法1.使用ArcToolbox 中的“Focal Statistics”工具在ArcGIS 中,可以使用ArcToolbox 中的“Focal Statistics”工具进行栅格归一化处理。

具体操作步骤如下:(1)打开ArcToolbox,选择“Spatial AnalystTools”->“Zonal”->“Focal Statistics”。

(2)在“Input Zones”中选择需要进行归一化处理的栅格数据。

(3)在“Input Features”中选择一个参考图层,该图层中的像素值将作为归一化的基准值。

(4)在“Statistics”中选择“Minimum”或“Maximum”,根据需要选择求最小值或最大值。

(5)在“Output Zonal Statistic”中设置输出结果的路径和文件名。

2.使用Python 编程语言调用ArcGIS API在Python 中,可以使用arcpy 模块调用ArcGIS API 进行栅格归一化处理。

arcgis统计栅格值

arcgis统计栅格值

arcgis统计栅格值ArcGIS可以帮助我们将栅格数据进行统计分析,比如计算栅格值的平均值、最大值、最小值、标准差等等。

这种统计分析可以帮助我们更好地了解栅格数据的特征和内在规律,从而更好地进行地理分析。

本文将介绍在ArcGIS 中如何进行栅格值的统计分析。

一、ArcGIS中的统计栅格值在ArcGIS中,我们可以使用Raster Calculator或者Spatial Analyst自动化工具箱来实现对栅格值的统计分析。

下面分别介绍这两种方法的具体操作。

1、使用Raster Calculator进行栅格值统计Raster Calculator是一种非常方便的工具,可以实现多种统计操作。

我们可以通过以下步骤使用Raster Calculator进行栅格值统计:(1)打开需要进行统计的栅格数据,并进入Raster Calculator界面;(2)输入统计表达式,例如mean("Raster1")表示求Raster1栅格数据的平均值;(3)设置输出栅格数据的保存路径和名称,并点击OK按钮保存输出结果。

对于简单的栅格值统计,可以直接使用Raster Calculator实现。

如果需要进行复杂的数据预处理或者数据分析,可以考虑使用Spatial Analyst自动化工具箱。

2、使用Spatial Analyst自动化工具箱进行栅格值统计Spatial Analyst是ArcGIS中的一个模块,可以进行空间分析和建模工作。

它包含了一系列工具,可以便捷地进行地理分析操作。

我们可以通过以下方法使用Spatial Analyst自动化工具箱实现数据的统计分析:(1)打开Spatial Analyst工具箱,并选择需要使用的工具;(2)输入需要进行分析的栅格数据和分析参数;(3)启动分析任务,并等待分析结果的生成。

注意:在使用Spatial Analyst进行数据分析前,需要先在ArcGIS中启用该模块。

arcengine栅格数据使用总结

arcengine栅格数据使用总结

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();。

ArcGIS9教程_第8章栅格数据的空间分析

ArcGIS9教程_第8章栅格数据的空间分析

ArcGIS9教程_第8章栅格数据的空间分析第⼋章栅格数据的空间分析栅格数据结构简单、直观,⾮常利于计算机操作和处理,是GIS 常⽤的空间基础数据格式。

基于栅格数据的空间分析是GIS 空间分析的基础,也是ArcGIS 的空间分析模块的核⼼内容。

栅格数据的空间分析主要包括:距离制图、密度制图、表⾯⽣成与分析、单元统计、领域统计、分类区统计、重分类、栅格计算等功能。

ArcGIS 栅格数据空间分析模块(Spatial Analyst )提供有效⼯具集,⽅便执⾏各种栅格数据空间分析操作,解决空间问题。

本章将对ArcGIS 中栅格数据空间分析的各模块从原理上和实现上作详细的说明,并附以具体实例,引导读者更好的应⽤。

8.1 设置分析环境基于ArcGIS 进⾏空间分析⾸先要设置分析环境。

分析环境的设置会⼀定程度地影响空间分析结果。

它主要包括⼯作⽬录的选择、栅格单元⼤⼩的设定、分析区域的选定、坐标基准的配准模式、分析过程⽂件的管理等。

本节将逐⼀对各分析环境的设置作详细说明。

8.1.1⼯作路径缺省情况下分析结果将⾃动保存在操作系统的默认路径下,如c:\...\temp 。

当然,通过栅格空间分析模块中的Option 选项的设置,可以指定新的所有分析结果的默认存放位置。

图8.1 设置⼯作路径1.单击Spatial Analyst 菜单下的Option 命令,打开Option 对话框。

2.在弹出的Option 对话框中选择General 标签(图8.1);3.在Working 栏中指定存放路径;4.点击确定按钮。

8.1.2 栅格⼤⼩此处栅格⼤指分析过程中系统默认的栅格数据的栅格单元⼤⼩(Cell Size ),也有⼈把它称为分析解析度。

栅格数据的空间分析就是在每⼀个栅格单元的基础上进⾏的。

如果单元过⼤则分析结果精确度降低,如果单元过⼩则会产⽣⼤量的数据,⽽且计算速度降低。

所以需要选择合适的单元⼤⼩。

可以通过如下⽅式来设置:1. 单击Spatial Analyst 菜单下的Option 命令,打开Option 对话框。

arcgis栅格计算器的使用

arcgis栅格计算器的使用

arcgis栅格计算器的使用
栅格计算器的灵活运用可以解决获取的数据的很多问题和应用。

以dem高程数据为例,可以运用栅格计算器可以直接获取坡度坡向等结果,但是很多时候是需要连续计算多次获得想要的结果。

本次以高程数据获取山体边界的应用。

1,打开一个dem高程数据
2,对高程数据进行运算,提取领域栅格中的最高点,像源的宽度和高度可以自己设定,这里设定为3乘3格,提取最高点并取最高点。

3,提取领域栅格中的最低点,这里设定为3乘3格,提取最低点并取最低点。

4,获得两张最高点和最低点的栅格计算数据
5,进行栅格计算,用高点的栅格数据减去底点的栅格数据,这样得到一个地点的高度变化差(生成的图有点类似于坡度)。

6,选取一个阈值,对这张图进行重分类,将图分为山区部分和非山区部分,这里将中断值设为20,得到一张区分山区和非山区的分割图。

此教程重点在于如何运用栅格计算器的使用过程。

能得到一些逻辑的运算结果以获得想要的成果。

arcgis栅格归一化处理

arcgis栅格归一化处理

arcgis栅格归一化处理ArcGIS是一个功能强大的地理信息系统(GIS)软件,它可以轻松地处理和管理大量的空间数据。

栅格数据是常见的一种空间数据类型,在实际应用中,常常需要对栅格数据进行归一化处理。

本文将介绍ArcGIS栅格归一化处理的基本原理与方法,并给出相关示例。

一、栅格归一化处理的基本原理栅格数据的归一化处理是将原始数据按一定比例映射到一定范围内的过程,常见的归一化方法有两种:线性映射和标准化。

线性映射是指将原始数据重新映射到一个新的值域上,使其取值在0到1之间,计算公式如下:$$\frac{x_i}{max(x)} \tag{1}$$$x_i$表示原始数据,$max(x)$表示原始数据的最大值。

这个新的值域通常被称为标准化值。

标准化是指将原始数据按其均值和标准差进行归一化处理,使得每个数据点所在的分布均值为0,标准差为1。

标准化的计算公式如下:在ArcGIS软件中,可以使用栅格计算器对栅格数据进行归一化处理。

具体步骤如下:1. 打开ArcGIS软件,加载需要进行归一化处理的栅格数据。

2. 打开栅格计算器,选择“环境设置”选项卡,在“输出栅格”处选择保存归一化后的栅格数据。

3. 选择“加”运算符,在表达式框中输入具体的归一化计算公式(如上文中的公式1和公式2)。

4. 点击“输入栅格”按钮,选择需要进行归一化处理的栅格数据。

$$NDVI = \frac{NIR - Red}{NIR + Red} \tag{3}$$$NIR$表示近红外波段的反射率,$Red$表示红色波段的反射率。

根据公式3,可以使用栅格计算器对NDVI遥感影像进行栅格归一化处理。

$min(NDVI)$表示NDVI遥感影像的最小值,$max(NDVI)$表示NDVI遥感影像的最大值。

5. 点击“计算”按钮,等待计算完成,即可得到归一化处理后的NDVI栅格数据。

以上就是关于ArcGIS栅格归一化处理的基本原理、方法及示例,希望对读者有所帮助。

arcgis栅格数据重分类

arcgis栅格数据重分类

arcgis栅格数据重分类ArcGIS是一种常用的地理信息系统(GIS)软件,提供了许多功能和工具,可以处理和分析各种地理数据,包括栅格数据。

本文将介绍ArcGIS中栅格数据重分类的概念、目的、方法和常见应用。

栅格数据重分类是将栅格数据的像元值重新分配到不同的分类之间的过程。

通过重分类,可以改变栅格数据的表达方式,从而更好地满足特定的分析需求。

栅格数据重分类主要用于将连续的数值数据转换为离散的分类数据。

栅格数据重分类的主要目的是减少数据复杂性,更好地表达地理现象,以便进行进一步的分析。

重分类可以通过将连续数据分组为不同的离散类别来实现,每个类别代表不同的现象或特征。

例如,在地形分析中,可以将高程数据重分类为高、中、低三个类别,以便研究地势的变化。

在ArcGIS中,栅格数据重分类可以通过栅格计算器工具、重分类工具和重新分类的符号化方式来实现。

首先,栅格计算器是一种可用于执行复杂的栅格数据操作的工具。

通过使用栅格计算器,可以将栅格数据的像元值根据一定的条件进行重新分配。

例如,可以使用条件语句将高程小于1000米的像元值重新分配为1,将高程大于1000米且小于2000米的像元值重新分配为2。

这样可以将连续的高程数据转换为离散的分类数据。

其次,ArcGIS中还提供了重分类工具,可以根据用户指定的重分类方案来重新分配栅格数据的像元值。

用户可以通过手动输入类别和像元值的对应关系,或者通过导入重分类表来进行重分类。

重分类表是一个包含原始像元值和新的分类值对应关系的表格。

通过使用这个工具,可以直接将像元值重新分配为新的分类值,从而实现栅格数据重分类。

最后,ArcGIS还提供了重新分类的符号化方式。

通过选择符号化方式为重新分类,可以将栅格数据的不同类别用不同的颜色或符号表示。

这样可以更直观地展示数据的变化和分布情况。

栅格数据重分类在许多领域和应用中都有重要的作用。

例如,在土地利用和土地覆盖研究中,可以通过重分类栅格数据来分析土地类型的分布和变化。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Vector
Grid
图2
3.2 线(Lines)
在栅格数据集中,线是由沿着一条线的相连接
的 cell 表示。在栅格产品中,组成线的 cell 必须
边相邻(即边靠着边),而不是角相邻(角靠角)。因
为路径寻找(Path Finding) 工具认为由角相邻的
cell 组成的线是分开的路径(见图 3)。
Vector
(下转第 21 页)
测绘技术装备 季刊 第 7 卷 2005 年第 1 期
技术交流 21
面,记入面拓扑信息文件。若多边形内无面标识点, 重复标识的面、悬挂结点、重叠链,并在显示的矢
则为未标识的面,记入面拓扑信息文件。
量数字地图上,用不同的颜色标出。
3.4.7 统计输入的面数、形成的面数、未标识的面、
如果只有很少几幅,这样就可很方便地解决问
主要包括 DEM、DRG、DOM 等。
题。但是,往往我们会同时碰到上百幅数据要处理,
4 ArcGIS 在栅格处理中的应用实例
显然这样要浪费很大的人力、物力。于是,我们想
在数字化生产和数字化产品应用过程中,我们 到 AML 宏命令语言,如果编写小程序,让计算机进
尝试,我们终于找到了问题的解决办法。栅格数据 在 ERDAS 下,很难完成这项任务。为此,我们将问
裁切步骤:
题转到 ArcGIS 下解决。多波段彩色图像处理步骤:
首先,将数据转换成 GRID 格式。
首先,将彩色多波段图像转换为 ArcGIS 的 GRID
然后,进行裁切,用 SETWINDOW 命令,结合 格式,这时,就会生成 3 个波段的 GRID,同时有一
(上接第 34 页)
最后,转换成需要的格式(如,GeoTIFF,同时
这时*.TFW 文件的重要性就突显出来。当图像与
生成*.TFW 文件)。
*.TFW 文 件 在 同 一 目 录 下 时 , 利 用 ERDAS 的
当要裁切多波段影像时,就如前面所提到的, IMPORT/EXPORT 模块输入图像时就有了坐标信息,这
1 引言
域分析、全域分析以及路径代价计算等强大的栅格
GIS 是集地球科学、信息科学与计算机技术为一 分析功能。除此之外,GRID 还具有许多栅格数据处
体的地理信息系统技术,已广泛应用于资源管理、 理能力。
环境监测、灾害评估、城市与区域规划等众多领域, AML(Arc Macro Language)是 ARC 环境下的一种
GRID。需拼接的 GRID 必须具有统一坐标系统,拼接
* - 按屏幕指针设置;
后像元大小与拼接图幅中最大像元一致(即:如 0.9
{snap_grid} – 用于捕捉角点坐标的基准 GRID
米的 GRID 与 1 米的 GIRD 拼接后像元大小为 1 米)。 名称,为可选项。
MERGE()函数的用法在这里就不阐述,详见 ESRI
常常碰到以下问题:栅格数据的格网大小需要调整; 行批量处理,就可以将人解放出来。根据所处理数
栅格数据需要拼接和裁切;栅格数据的数学基础(投 据的特点,用几个循环语句来控制程序的运行,完
影、坐标系统等)需要转换等等,这些问题采用 成数据的批量处理。
下面给出示例:
34 技术交流
测绘技术装备 季刊 第 7 卷 2005 年第 1 期
我们就想到了 ArcGIS,既然它是号称最强大的
有时我们需要处理彩色图像,如,我们现在要
GIS 软件,应该能解决这个问题吧。
做一幅三维景观图,这就要求影像与 DEM 数据的数
回答是肯定的。然后,就想到既然是栅格数据, 学基础(投影、坐标系统等)一致。为了实现这一目
就应该在 GRID 模块下来完成处理。通过认真思考和 的,我们就需要进行投影变换和坐标转换,显然,
理遇到 PC 计算机处理能力限制的瓶颈)。本文结合 ArcGIS 命令语言和本身提供的大量宏命令和菜单进
工作中出现的问题及寻求解决途径的经验,介绍应 行二次开发,扩充 ArcGIS 的基本功能。
用 ArcGIS 的 GRID 模块处理栅格数据的技巧和方法。 3 栅格数据
2 ArcGIS 简介
地理特征可以用矢量,也可以用栅格数据表示。
分波段裁切,最后合成。这里就不再重复。
样问题就迎刃而解。欣喜之余,我们体会到了 ArcGIS
4.4 *.TFW 文件简述
的强大功能。当然,目前 ERDAS 也注意到了问题的
上面多次提到*.TFW 文件,有许多读者会问,这 重要性,从 ERDAS 8.5 版本以后,增加了同时输出
&do i = 0 &to 99 &by 1
&do j = 0 &to 99 &by 1
&s l = [translate [format '%19; ']
&s r = [translate [format '%1,-2%' %j%] '0' ' ']
&if [exists c:\workspace\j45g0%l%0%r%w_w.tif -file] &then &do
系统的成败。因此地图数据的质量愈来愈受到人们 能更准确和更详细的报告数据错误,以便加快数据
的关注和重视。目前,我国 1∶5 万矢量地形数据库 编辑过程,提高生产效率。
的建库工作正全面展开,为保证建库质量和速度,
参考文献 [1]蔡少华. GIS 图形空间关系的研究与实践. 解放军测绘学院博士学位论文,1998 [2]冯文利. 如何做好面状要素拓扑结构化检查. 军事测绘论文集,解放军出版社,1998 [3]吴芳华. 矢量数字地图质量自动检查方法研究. 测绘科学与工程,2004.6
32 技术交流
测绘技术装备 季刊 第 7 卷 2005 年第 1 期
ArcGIS 在栅格数据处理中的应用初探
王宪民
(甘肃省基础地理信息中心 兰州 730000)
摘 要:本文主要介绍了应用 ArcGIS 的 GRID 模块处理栅格数据的思想、方法及关键技术,并给出几个应用
的具体例子。
关键词:ArcGIS 栅格 数据 处理 应用
Y L3
L4
采集限差
居民地 道路
水系
道路
X L2
图 8 点分割线
图 9 端点分割线
图 10 线分割线
L1 图 11 多边形追踪
4 结束语
数据质量问题应在各生产单位解决。本文描述的拓
数字地图的数据质量直接影响到所有基于该数 扑关系自动检查方法已在数据生产单位应用,证明
据的应用、分析、决策的正确性和可靠性,影响到 是可行的。需要进一步改进的是拓扑检查功能,应
过给覆盖其位置的格网赋一定的值,而不是通过直 RESAMPLE。设置 CELLSIZE 为 1 米。
接给出其 x,y 坐标值来表示。栅格结构适合于空间
最后,将 GRID 转换为 GeoTIFF 格式,完成数据
分析。栅格结构还适合于诸如数字高程模型和分类 处理,同时生成*.TFW 文件。
遥感图像等用格网方式存储的数据。通常栅格数据
应用 ArcGIS 的 GRID 模块来处理,其方法是栅 格重采样,原理如图 5 所示:
图5
图3
数据重采样函数 RESAMPLE 用来改变栅格数据的
3.3 多边形(Polygons)
格网尺寸,该函数的语法为:
在栅格数据集中,面状物体由具有相同值的一
RESAMPLE(<grid>,{cellsize},{NEAREST|BILI
Grid
ArcGIS 来处理是比较方便的。下面举出处理以上问 题的几个实例。 4.1 栅格数据网格大小的调整
在 1:1 万 4D 生产过程中,生产的 DOM 数据格网 大小(CellSize)为 0.9 米,而客户要求为 1 米,为了 满足客户的要求,需要对数据进行必要的处理。我 们采用 ArcGIS 来完成这项任务。 ①栅格数据网格大小调整的原理
ArcGIS 是美国环境系统研究所(ESRI)于 1982 年
栅格(Grid)是一种利用格网研究一个地区的空
推出的第一套地理信息软件。最近,ESRI 公司已经 间信息的数据模型。Grid 数据集由正方形网格组成,
推出的最新软件为 ArcGIS 9.0 版本。在当前众多的 在某一 Grid 中,所有网格的大小相等,而多个 Grid,
imagegrid j45g0%l%0%r%w_w.tif j45g0%l%0%r%
grid
j45g0%l%0%r%a = resample(c:\workspace\j45g0%l%0%r%,1,bilinear)
quit
gridimage j45g0%l%0%r%a gray j45g0%l%0%r%w_z.tif tiff
实例:
ArcDoc 联机帮助文档。
Grid : SETWINDOW 398212.66 3871703.631
②栅格数据的裁切
483427.758 3996882.843
利用 ArcGIS 的 GRID 模块,还可以完成栅格数
——按地图单位来设置裁切窗口大小
据的裁切功能,而且,还有意想不到的优点。当我
图 1 栅格数据结构
在栅格数据集中,所有的地理特征都是以同一 中,你可以把这些值解释为点、线和多边形。 种方式表示,给网格赋予一定的值,在不同的应用
测绘技术装备 季刊 第 7 卷 2005 年第 1 期
技术交流 33
3.1 点(Points)
在栅格数据集中,点被表示成一个充满的栅格
格网(Grid Cell)的元素(见图 2)。
&end
&end
&end
以上只是一个简单的批处理程序,程序假设用 ymax | *> {snap_grid}
相关文档
最新文档