- 浏览: 224385 次
- 性别:
- 来自: 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 853package org.qincy.binary; ... -
com.richfit.bi.quartz 定时执行示例
2013-04-12 15:39 01 内含jetty 配置,下载jetty 依赖包,算了,还是提 ... -
geoserver 在liunix 系统下 地图乱码问题解决
2013-01-04 13:20 1140... -
openscales1.2 实现加载arcgis 切片
2012-09-14 12:30 2441package org.openscales.core.lay ... -
重写openalyers 的方法,加载天地图瓦片数据
2012-06-20 09:16 6253将TiandituLayer 加载到OpenLayers.js ... -
利用工具将shp文件导入到oracle spatial中
2012-05-21 14:20 43221 下载shp2sdo 工具,将工具放在 oracle按照目录 ... -
oracle s
2012-06-20 09:18 912<pre name="code" c ... -
oracle spatial 空间数据学习
2012-05-17 16:09 1745最近项目使用 空间数据库 oracle spatial ... -
在ArcGIS 10 Desktop中打开Google Map,BingMap
2012-04-13 15:56 1505安装使用: 1 双击ArcBruTile_0.2.zip ... -
svn 删除注册表
2012-02-11 12:02 1432svn 删除注册表 -
arcgis server 服务
2012-01-06 17:58 1140package com.hdmap.fymas; imp ... -
Flex BlazeDS java 项目
2011-12-12 17:21 1033根据网上的例子 ,写的 flex BlazeDS 框架与 ... -
ArcObject中的游标Cursor的理解
2011-05-04 10:48 1245cursor给人的第一 ... -
esri arcobj 开发for java
2011-04-15 14:04 10461、查找数据 1)、利用FeaturCursor进行空间查询 ... -
ESRI Flex GIS开发连载(1) ---环境搭建
2011-03-25 10:29 18271首先 用 argis server 发布一个 s ... -
工具类
2011-02-18 14:05 936英文数字转换为 中文数字 public class Mon ... -
junit 4 spring 自动化测试
2010-12-13 16:08 15991 添加jar ,依赖jar 包围 spring-test, ... -
在tomcat 发布,去掉项目名称
2010-11-17 09:53 19191 找到 server.xml 配置= ... -
掉字段内容包含的空格
2010-09-27 10:17 941使用replace函数去掉字段内容包含的空格,例子如下: up ... -
无聊的jsti 的fn 函数(资料备份)
2010-09-25 17:16 942无聊的jsti 的fn 函数(资料备份) ...
相关推荐
本文档描述了如何利用ARCGIS对栅格进行自动矢量化,手动矢量化等操作,这样会给你事半功倍的校果。
通过应用阈值选择高累积流量的像元,可使用流量工具的结果来创建栅格河流网络。例如,像元流入超过 100 的像元用来定义河流网络。
介绍如何在ARCMAP中配准并矢量化栅格图像
在ArcGIS中栅格数据矢量化.doc
栅格河网矢量化工具使用的算法主要用于矢量化河流网络或任何其他表示方向已知的栅格线性网络的栅格。
内容简介:矢量数据不同于栅格数据,一般不存在模式化的分析处理方法。在ArcGIS 中,矢量数据的空间分析主要集中于缓冲区分析、叠置分析和网络分析等方面。
基于ENVI和ArcGIS对空间栅格数据矢量化与拓扑分析
在ArcGIS中,一个地图存储了数据源的表达方式(地图,图表, 表格) 以及空间参考。在ArcMap中保存一个地图时,ArcMap将创建与数据的链接,并把这些链接与具体的表达方式保存起来。当打开一个地图时,它会检查数据链接...
关于利用ARCGIS进行矢量化的操作方法
ArcGIS Engine栅格数据使用总结 ArcOjects 3D开发方法简介 作者:佚名 文章来源:GIS论坛 点击数:861 更新时间:2009-8-6 一、ArcOjects 3D开发方法简介 众所周知,在ArcGIS 3D分析扩展模块中提供了丰富的三维...
介绍了在arcmap中怎么配准栅格图像并矢量化
自动(批处理)矢量化可能需要完成一系列步骤才能实现令人满意的“栅格至矢量”转换。它也可以像执行某一命令来生成矢量...矢量化过程会因您所处理的输入栅格数据的状态而异。本节旨在对自动矢量化体验进行概括性介绍。
地形图矢量化
ArcScan 支持单独用于栅格捕捉的选项对话框。可从“扫描矢量化”工具栏访问“栅格捕捉选项”对话框,您可以通过此对话框来应用专门针对栅格追踪的设置。
在arcgis中为图片格式进行坐标配准并矢量化
使用GIS ArcMap 从 tif 栅格图层提取数据信息
, 本书的主要内容:, Python语法基础, 地理处理任务的自动化, 空间数据的访问和操作, 矢量和栅格数据的使用, 制图脚本开发, 程序调试和错误处理, 函数和类的创建, 脚本工具的创建和共享
4.3 矢量数据批量裁剪按别名 4.4 矢量数据批量合库 4.5 影像合并 4.6 影像批量裁剪 5.其他 5.1 度分秒转度 5.2 度转度分秒 5.3 飞行网络路线制作 5.4 获得工具箱的工具数 5.5 移除tbx 6.数据处理 6.1 按长度分割线...
由于扫描栅格图不具备空间参考信息,所以在矢量化之前,需要先对栅格图进行配准。配准栅格图需要准确的空间坐标信息,这些信息有时可以从纸质地图上读取。比如,从纸质地图的经纬网或方里网上读取交叉点的坐标值。 ....
适用于初步做过和没有做过栅格矢量化的人员,对基础知识进行了详细的讲解,并有原型工程对其加以解释