- 浏览: 230453 次
- 性别:
- 来自: beijing
文章分类
直接贴代码了,不多解释了。
1、栅格数据的存储类型
栅格数据一般可以存储为ESRI GRID(由一系列文件组成),TIFF格式(包括一个TIF文件和一个AUX文件),还有JPG,BMP文件,IMAGINE Image格式 在AE中一般调用ISaveAs接口来保存栅格数据。
2、栅格数据集和栅格编目的区别
一个栅格数据集由一个或者多个波段(RasterBand)的数据组成,一个波段就是一个数据矩阵。对于格网数据(DEM数据)和单波段的影像数据,表现为仅仅只有一个波段数据的栅格数据集,而对于多光谱影像数据则表现为具有多个波段的栅格数据集
栅格编目(RasterCatalog)用于显示某个研究区域内各种相邻的栅格数据,这些相邻的栅格数据没有经过拼接处理 合成一副大的影像图
3、IRasterWorkspaceEx与IRasterWorkspace ,IRsterWorkspace2的区别
1).IRasteWorkspaceEx接口主要是用来读取GeoDatabase中的栅格数据集和栅格编目
2) . IRasterWorkspace ,IRsterWorkspace2主要是用来读取以文件格式存储在本地的栅格数据
4、加载栅格数据(以存储在本地的栅格数据文件为例)
import com.esri.arcgis.carto.IRasterLayer; import com.esri.arcgis.carto.RasterLayer; import com.esri.arcgis.datasourcesraster.IRasterBand; import com.esri.arcgis.datasourcesraster.IRasterBandCollection; import com.esri.arcgis.datasourcesraster.IRasterBandCollectionProxy; import com.esri.arcgis.datasourcesraster.RasterWorkspaceFactory; import com.esri.arcgis.geodatabase.IDataset; import com.esri.arcgis.geodatabase.IDatasetProxy; import com.esri.arcgis.geodatabase.IRasterDataset; import com.esri.arcgis.geodatabase.IRasterWorkspace2; import com.esri.arcgis.geodatabase.IRasterWorkspace2Proxy; import com.esri.arcgis.geodatabase.IWorkspaceFactory; import com.esri.arcgis.geoprocessing.GeoProcessor; import com.esri.arcgis.geoprocessing.tools.conversiontools.RasterToPolygon; import com.esri.arcgis.system.AoInitialize; import com.esri.arcgis.system.EngineInitializer; import com.esri.arcgis.system.IPropertySet; import com.esri.arcgis.system.esriLicenseProductCode; import com.esri.arcgis.system.esriLicenseStatus; public class RasterMain { public RasterMain() { } public static void main(String[] args) { System.out .println("Starting RasterMain - An ArcObjects SDK Developer Sample"); try { // Initialize engine console application EngineInitializer.initializeEngine(); // Initialize ArcGIS license AoInitialize aoInit = new AoInitialize(); initializeArcGISLicenses(aoInit); // Get DEVKITHOME Home System.out.println("Setup--------"); testRasterMethods(); System.out.println("Done.-----------"); // Ensure any ESRI libraries are unloaded in the correct order aoInit.shutdown(); } catch (Exception e) { System.out.println("Error: " + e.getMessage()); System.out.println("Sample failed. Exiting..."); e.printStackTrace(); System.exit(-1); } } private static void testRasterMethods() throws Exception { String rastFileDocPath = "D:\\temp\\test\\bmp"; String rastFilePath = "DST_DBLV_FY3A_MERSI_1000M_DXX_P001_20110407054000.bmp"; String outPolygonFeaturesPath = "D:\\temp\\test\\shp\\qincytewt999900t.shp"; IRasterWorkspace2 rasterWs = openRasterWorkspace(rastFileDocPath); IRasterDataset rastDataset = rasterWs.openRasterDataset(rastFilePath); IRasterDataset rastDatasetItem1 = getRasterDatasetItem(rastDataset, 1); rasterToPolygon(rastDatasetItem1, outPolygonFeaturesPath); } private static IRasterWorkspace2 openRasterWorkspace(String rastFileDocPath) throws Exception { IWorkspaceFactory workspaceFact = new RasterWorkspaceFactory(); IRasterWorkspace2 rw2 = new IRasterWorkspace2Proxy( workspaceFact.openFromFile(rastFileDocPath, 0)); return rw2; } private static void rasterToPolygon(IRasterDataset rasterDataset, String outPolygonFeaturesPath) { try { GeoProcessor geoprocessor = new GeoProcessor(); RasterToPolygon rasterToPolygon = new RasterToPolygon(); String paramObject = "Value"; String simplify = "false"; rasterToPolygon.setOutPolygonFeatures(outPolygonFeaturesPath); rasterToPolygon.setRasterField(paramObject); IRasterLayer rasterLayer = new RasterLayer(); rasterLayer.createFromDataset(rasterDataset); rasterToPolygon.setInRaster(rasterLayer); rasterToPolygon.setSimplify(simplify); //System.out.println(rasterToPolygon.getSimplify()); geoprocessor.execute(rasterToPolygon, null); } catch (Exception e) { //System.out.println("rasterToPolygon=" + e); } } @SuppressWarnings("unused") private static void BMP_EXIFtag(IRasterDataset exifDataset) { try { IDataset dataset = new IDatasetProxy(exifDataset); IPropertySet propertySet = dataset.getPropertySet(); Object[] tag_names = new Object[1]; Object[] tag_values = new Object[1]; propertySet.getAllProperties(tag_names, tag_values); String[] stringNames = (String[]) tag_names[0]; Object[] stringValues = (Object[]) tag_values[0]; for (int i = 0; i <= stringNames.length - 1; i++) { System.out.print(stringNames[i] + ":"); System.out.println(stringValues[i]); } } catch (Exception e) { System.out.println("BMP_EXIFtag" + e); } } @SuppressWarnings("deprecation") private static IRasterDataset getRasterDatasetItem( IRasterDataset exifDataset, int num) throws Exception { IRasterBandCollection rasterBands = new IRasterBandCollectionProxy( exifDataset); IRasterBand rasterBand = rasterBands.item(num); System.out.println("rasterBand:" + rasterBand.getBandname()); IRasterDataset di = rasterBand.getRasterDataset(); return di; } /** * Checks to see if an ArcGIS Engine Runtime license or an ArcView License * is available. If so, then the appropriate ArcGIS License is initialized. * * @param aoInit * The AoInitialize object instantiated in the main method. */ private static void initializeArcGISLicenses(AoInitialize aoInit) { try { if (aoInit .isProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine) == esriLicenseStatus.esriLicenseAvailable) aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeEngine); else if (aoInit .isProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeArcView) == esriLicenseStatus.esriLicenseAvailable) aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeArcView); else { System.err .println("Could not initialize an Engine or ArcView license. Exiting application."); System.exit(-1); } } catch (Exception e) { e.printStackTrace(); } } }
5 详细情况可以使用esri 提供的java 帮助搜索 ,可以查询到在catalog 或者geobase 的例子。
6 本代码有报异常的错误,但是不影响使用,依然能栅格矢量化,不知道为什么,请高手帮忙解决这个问题。
发表评论
-
二进制 授权管理 java
2013-09-09 12:52 912package org.qincy.binary; ... -
com.richfit.bi.quartz 定时执行示例
2013-04-12 15:39 01 内含jetty 配置,下载jetty 依赖包,算了,还是提 ... -
geoserver 在liunix 系统下 地图乱码问题解决
2013-01-04 13:20 1247... -
openscales1.2 实现加载arcgis 切片
2012-09-14 12:30 2492package org.openscales.core.lay ... -
重写openalyers 的方法,加载天地图瓦片数据
2012-06-20 09:16 6372将TiandituLayer 加载到OpenLayers.js ... -
利用工具将shp文件导入到oracle spatial中
2012-05-21 14:20 43931 下载shp2sdo 工具,将工具放在 oracle按照目录 ... -
oracle s
2012-06-20 09:18 974<pre name="code" c ... -
oracle spatial 空间数据学习
2012-05-17 16:09 1786最近项目使用 空间数据库 oracle spatial ... -
在ArcGIS 10 Desktop中打开Google Map,BingMap
2012-04-13 15:56 1556安装使用: 1 双击ArcBruTile_0.2.zip ... -
svn 删除注册表
2012-02-11 12:02 1569svn 删除注册表 -
arcgis server 服务
2012-01-06 17:58 1186package com.hdmap.fymas; imp ... -
Flex BlazeDS java 项目
2011-12-12 17:21 1102根据网上的例子 ,写的 flex BlazeDS 框架与 ... -
ArcObject中的游标Cursor的理解
2011-05-04 10:48 1295cursor给人的第一 ... -
esri arcobj 开发for java
2011-04-15 14:04 10801、查找数据 1)、利用FeaturCursor进行空间查询 ... -
ESRI Flex GIS开发连载(1) ---环境搭建
2011-03-25 10:29 18761首先 用 argis server 发布一个 s ... -
工具类
2011-02-18 14:05 979英文数字转换为 中文数字 public class Mon ... -
junit 4 spring 自动化测试
2010-12-13 16:08 16391 添加jar ,依赖jar 包围 spring-test, ... -
在tomcat 发布,去掉项目名称
2010-11-17 09:53 19691 找到 server.xml 配置= ... -
掉字段内容包含的空格
2010-09-27 10:17 981使用replace函数去掉字段内容包含的空格,例子如下: up ... -
无聊的jsti 的fn 函数(资料备份)
2010-09-25 17:16 984无聊的jsti 的fn 函数(资料备份) ...
相关推荐
2. **ArcScan矢量化** 是ArcGIS自带的一个自动化工具,适合大规模的栅格数据转换。ArcScan使用一系列算法自动识别和转换栅格边界到矢量线条。 - **矢量化内容**:ArcScan能够识别栅格中的边界,例如通过设置阈值来...
ArcGIS中的栅格河网矢量化是将栅格河流网络转换为矢量形式的过程,该过程可以使用StreamToFeature工具来实现。通过选择阈值和使用条件函数或设为空函数工具,可以定义河流网络的范围和方向。生成的河流网络可以用在...
- 在重新生成采样数据和矢量化栅格图像时,必须使用合适的坐标系和投影方式,这样能够保证数据在转换成矢量格式后的准确性和可利用性。 通过上述步骤,ArcGIS能够帮助用户高效地完成栅格图像的配准和矢量化工作。...
在这篇文章中,我们将探讨如何在 ArcGIS 中对栅格图像进行配准和矢量化,并将其转换为矢量数据。 栅格图像配准 在 ArcGIS 中,栅格图像配准是将图像与地理坐标系相关联的过程。为了实现栅格图像的配准,我们需要先...
本文将详细探讨“ArcMap栅格数据矢量化及使用ArcScan矢量化”的过程,帮助你掌握这一关键技术。 首先,我们要了解什么是矢量数据和栅格数据。矢量数据是基于几何对象(点、线、面)表示地理信息,具有精确的几何...
- 在ArcGIS中,使用"Rasterize (vector to raster)"工具进行矢量转栅格操作。这个过程涉及选择矢量图层、定义输出栅格大小、栅格化方法(如使用属性字段或ID字段)、以及设置NoData值等参数。 - 应用场景:例如,...
ArcMap提供了多种工具和方法来支持栅格数据到矢量数据的转换,包括手动矢量化和自动矢量化。自动矢量化可以利用ArcMap强大的工具集来识别栅格图像中的边缘或特征,并将这些特征自动转换为矢量数据。手动矢量化则需要...
【ArcMap 栅格数据矢量化】是GIS领域的一个重要环节,主要涉及将栅格数据转换为矢量数据的过程,以便进行更精确的地理分析和编辑。ArcMap是Esri公司的ArcGIS软件套件中的核心组件,用于创建、编辑和展示地理信息。...
本文介绍了一种基于ENVI和ArcGIS的空间栅格数据矢量化与拓扑分析方法,该方法可以自动批量将图像中空间栅格数据进行矢量化提取,并依此展开拓扑分析。该方法可以应用于水文泥沙规划方向研究等领域,提高科研与设计的...
栅格河网矢量化是ArcGIS软件中的一个重要工具,它利用特定的算法将代表河流走向的栅格数据转换为矢量线要素。这个过程涉及到对栅格数据的分析,识别连续的方向变化,并根据这些变化构建出连续的线性特征。栅格河网...
总的来说,这个“使用ArcGIS模型构建器做的分割栅格工具”是一个高效的数据管理解决方案,尤其适用于处理大规模的栅格数据集,例如进行影像分幅、区域分析或按照特定边界裁剪数据。通过此工具,用户可以自动化原本...
栅格数据矢量化工具R2V是一款专门针对地理信息系统(GIS)中的栅格数据转换为矢量数据的软件。在GIS领域,数据通常分为两种基本类型:栅格数据和矢量数据。栅格数据以网格形式存储地理信息,每个单元格代表一个地理...
ArcGIS 配准栅格图形是因为栅格图像在 ArcGIS 中无法直接使用,需要进行配准和矢量化以便在 ArcGIS 中使用。 3. ArcGIS 配准栅格图形的步骤: (1)新建一个新工程,添加 TIF 图像,单击 Yes 确定,加载图像后提示...
ArcGIS栅格图象数字化 ...arcgis栅格图象数字化是一项复杂的工作,需要进行栅格图象的校准和矢量化,并且需要与其他软件进行数据转换。只有通过详细的步骤和正确的操作,才能确保栅格图象数字化的成功。
3. **技巧**:掌握这些工具的正确使用方法,可以大大提高栅格数据的质量,为后续的矢量化工作奠定良好的基础。 #### 三、定义范围 1. **意义**:在进行大规模的数据转换时,明确矢量化范围可以有效减少处理时间,...
接着,使用ArcScan工具条进行实际的矢量化工作。操作者需清除不需要的像元,并利用“生成要素”功能将选定的像元转化为矢量线条。 矢量化完成后,需要对矢量数据进行完善。这一阶段可能包括删除多余的线条、合并...
《ArcGIS矢量化操作教程及数据资料》是针对地理信息系统(GIS)初学者及专业人员的一份宝贵资源,尤其在使用ArcGIS软件进行矢量化处理时。这份教程旨在帮助用户理解并掌握如何将栅格数据转换为矢量数据,以及进行...
在 ArcGIS 中栅格数据矢量化 在 ArcGIS 中栅格数据矢量化是指将栅格图像转换为矢量数据的过程。在这个过程中,我们可以使用 ArcGIS 软件来实现栅格图像的矢量化。 一、图像加载 在 ArcGIS 中,首先需要加载要矢量...
为了帮助开发者利用Java进行ArcGIS的二次开发,Esri公司提供了ArcObjects SDK for Java,它包含了丰富的API和示例代码,以便于开发者构建定制化的GIS应用。 一、ArcObjects SDK for Java ArcObjects SDK for Java...