栅格数据

python gdal 读取栅格数据

被刻印的时光 ゝ 提交于 2020-03-24 05:51:34
1.gdal包简介 gdal是空间数据处理的开源包,其支持超过100种栅格数据类型,涵盖所有主流GIS与RS数据格式,包括Arc/Info ASCII Grid(asc),GeoTiff (tiff),Erdas Imagine Images(img),ASCII DEM(dem) 等格式。 2.安装gdal包 (1)通过此链接查找并下载gdal包: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pygame (根据自己的系统及python版本选择对应的gdal包) (2)在dos命令行下切换到包所在的文件夹,并运行pip install 包名进行安装。 3.读取栅格数据 #导入gdal包 from osgeo import gdal #导入numpy包(支持高维数组和矩阵运算,也提供了许多数组和矩阵运算的函数) import numpy as np #打开文件 dataset=gdal.Open("fdem.tif") #栅格矩阵的列数 im_width = dataset.RasterXSize #栅格矩阵的行数 im_height = dataset.RasterYSize #波段数 im_bands = dataset.RasterCount #仿射矩阵,左上角像素的大地坐标和像素分辨率。 #共有六个参数,分表代表左上角x坐标

命令行记录-矢量向栅格转换

删除回忆录丶 提交于 2020-03-24 05:02:30
1、 (1)重点学习如何应用 gdal.RasterizeLayer 函数 gdal.RasterizeLayer( target_ds, [3, 2, 1], source_lyr, burn_values = [10,10, 55], options = ["ALL_TOUCHED=TRUE"])注意:栅格化时,将波段 1,2,3 上,分别赋值 55,10,10,source_lyr为打开的文件,burn_values和options这两个属性是非必须的。 (2)关键是选项的选择问题,有4种赋值方式,如: options=["ATTRIBUTE=LUCODE"],表示字段" LUCODE "的属性值将为栅格值,如果没有设定字段名,则赋值为0; options=["BURN_VALUE_FROM=Z"],表示 3D 图形的栅格值为其 Z 值(高程值) ; options=["ALL_TOUCHED=TRUE"],表示图形接触到的像素均将输出; options=["MERGE_ALG=ADD","MERGE_ALG=REPLACE"], 表示多图形覆盖同一像素的取值方式 2、 from osgeo import gdal, ogr, osr #定义投影 sr = osr.SpatialReference('LOCAL_CS["arbitrary"]') #在内存中

PIE-SDK For C++打开栅格数据

断了今生、忘了曾经 提交于 2020-02-26 16:41:44
1.功能简介 GIS 将地理空间数据表示为矢量数据和栅格数据。矢量数据模型使用点、线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点、河流和宗地等,每个要素被赋予一个 ID ,以便与其属性相关联。栅格数据模型使用一个格网和格网元胞(像元)代表空间要素,元胞值表示该元胞位置的空间要素属性。栅格数据模型适用于表示连续的要素,如海拔和降水量。 [ 矢量数据模型 ] [ 栅格数据模型 ] PIE 支持多种矢量数据的打开,下面我们就介绍如何在 PIE 中打开栅格数据。 2.功能实现说明 2.1栅格数据介绍 常见的栅格数据文件格式包括 tiff 、 tif 、 img 、 dat 等,它们采用文件的方式存储相关信息,一个 Tiff 数据的文件结构如下所示( GF1 数据为例): [Tiff 数据文件结构 ] 编号 后缀 文件说明 1 .tiff 基本文件,存储栅格数据的像素、坐标系、坐标等信息; 2 .jpg 可选文件,栅格数据的示意图; 3 .rpb 可选文件,坐标参数文件; 4 .xml 可选文件,数据相关信息文件; 5 .ovr/aux.xml 可选文件,栅格数据金字塔文件; [Tiff 数据文件结构说明 ] 2.2实现思路及原理说明 第一步 通过文件路径打开栅格数据集 第二步 通过栅格数据集创建栅格图层 2.3核心接口与方法 接口 / 类 方法 说明 SysDataSource

GIS网络资源

大兔子大兔子 提交于 2020-02-18 18:19:03
目前共发布95个数据集的信息,涉及的总数据量超过25GB (不包括遥感影像数据集)。大部分数据为带密级的数据,不能通过网络直接获取。其中共有49个数据集的数据和24个样例数据可以直接免费下载,数据量达210MB。对于其中带密级的数据,分别给出了数据获取途径、程序以及需要遵照的法规。 地理信息系统论坛 http://www.gisforum.net/ 中国GIS咨询网 http://www.gissky.com/index.asp 资源大联盟 http://zydlm.wxhc.com.cn/main.asp FreeGIS组织 http://www.freegis.org 该网站提供FreeGIS平台索引,国际上主要的FreeGIS平台都可以在这里找到 MapTools组织 http://www.maptools.org 该网站提供开放源代码的GIS资源 OGC组织 http://www.opengeospatial.org 国际开放GIS标准的制订者,ESRI,Intergraph,Mapinfo,Oracle,Sun,BEA等都是OGC成员 MySQL数据库 http://www.mysql.com MySQL从4.1开始支持空间数据库,遵循OGC规范,目前正式版本是5.0 PostgreSQL http://www.postgresql.org 中文 http://www

你不得不了解的目标检测发展史

喜你入骨 提交于 2020-02-07 15:48:21
计算机视觉 计算机视觉中的三大类任务: 分类 Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标 定位 Location:解决“在哪里”的问题,即定位出这个目标的位置 检测 Detection:解决“是什么?在哪里”的问题,即定位出这个目标的位置并且知道目标物是什么 分割 Segmentation:分为实例分割和场景分割,解决“每一个像素属于哪个目标物或场景”的问题。 一、目标检测 目标检测可以理解为是物体识别和物体定位的综合,不仅仅要识别物体属于哪个分类,更重要的是得到物体在图片中的具体位置。 为了完成这两个任务,目标检测模型分为两类。一类是two-stage算法;一类是one-stage算法。对于two-stage检测方法来说,它先生成了可能包含物体的候选区域Region Proposal,然后对这个候选区域做进一步的分类和校准,得到最终的检测结果,代表方法有R-CNN系列方法。而对于one-stage检测算法直接给出最终的检测结果,没有经过生成候选区域的步骤,典型代表为YOLO和SSD。 目标检测算法的3个模块: 第一个是检测窗口的选择 ; 第二个是图像特征的提取 ; 第三个是分类器的设计 。 补充基础知识之检测窗口的选择 1.滑动窗口法 首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动

Navigation:costmap是什么?

怎甘沉沦 提交于 2020-02-03 11:55:16
costmap是什么? costmap翻译过来是代价地图的意思。由SLAM算法生成栅格地图。我们为栅格地图中的每一个栅格分配一个代价值,这样就形成了costmap。路径规划算法则可以在具有代价的栅格地图上生成路径。不同的代价值将生成不同的路径。为了生成合适的路径,我们需要为每个栅格分配合适的代价值。最开始想到的是在单层的costmap中更新每个栅格的代价,然后直接给路径规划算法。但这样会引起诸多问题。比如因为所有的数据都在同一个costmap中更新,任何一个数据的变动都需要拿到之前其他的数据重新一起计算代价值。比如数据更新的地图范围也不好确定。比如当数据类型多了之后,数据整合的顺序不好控制。 后来想到将单层的costmap分成多层是个好办法。如上图所示,一层costmap只用同一种数据来更新。比如最底层的static map就是SLAM算法生成的静态地图。使用静态地图数据生成一层costmap。Obstacles 层则是由传感器数据更新的costmap层。甚至可以根据某些特殊目的自定义一个costmap层,使生成的路径规避某些区域。这在单层的costmap算法中是很难实现的。最后将所有的costmap层按特定的顺序组合起来形成了layered_costmap。可以看到这是一种更为灵活,扩展性也更强的方法。 ROS中的costmap_2d功能包 costmap

栅格数据的编码方法

生来就可爱ヽ(ⅴ<●) 提交于 2020-01-22 22:57:36
直接栅格编码 直接编码就是将栅格数据看作一个数据矩阵, 逐行(或逐列)逐个记录代码 ,可以每行从左到右逐像元记录,也可奇数行从左到右而偶数行由右向左记录,为了特定的目的还可采用其他特殊的顺序。 链式编码 链式编码又称为弗里曼链码(Freeman,1961)或边界链码。 链式编码主要是记录线状地物和面状地物的边界。 它把线状地物和面状地物的边界表示为:由某一起始点开始并按某些基本方向确定的单位矢量链。基本方向可定义为:东=0,东南=l,南=2,西南=3,西=4,西北=5,北=6,东北=7等八个基本方向。 链式编码的前两个数字表示起点的行、列数,从第三个数字开始的每个数字表示单位矢量的方向,八个方向以0—7的整数代表。 链式编码对线状和多边形的表示具有很强的数据压缩能力,且具有一定的运算功能,如面积和周长计算等,探测边界急弯和凹进部分等都比较容易,类似矢量数据结构,比较适于存储图形数据。 缺点是对叠置运算如组合、相交等则很难实施,对局部修改将改变整体结构,效率较低,而且由于链码以每个区域为单位存储边界,相邻区域的边界则被重复存储而产生冗余。 游程长度编码 游程长度编码是栅格数据压缩的重要编码方法,它的基本思路是:对于一幅栅格图像,常常有行(或列)方向上相邻的若干点具有相同的属性代码,因而可采取某种方法压缩那些重复的记录内容。其编码方案是,只在各行(或列

ArcGIS处理栅格数据(一)

怎甘沉沦 提交于 2020-01-10 10:50:56
一、建立影像金字塔   ArcToolbox——数据管理工具——栅格——栅格属性——构建金字塔(pyramid)   说明:该方式一次只能为一张影像数据建立影像金字塔。   ArcToolbox——数据管理工具——栅格——栅格属性——批量构建金字塔(pyramid)   说明:该方式一次可以为多张影像数据建立影像金字塔。 二、影像分割   方式一、ArcToolbox——数据管理工具——栅格——栅格数据处理——分割栅格   在下面的XY坐标处,输入分割后影像数据的大小即可。   方式二、ArcToolbox——数据管理工具——栅格——栅格数据处理——裁剪 三、添加空间参考   ArcToolbox——数据管理工具——投影和变换——定义投影   选择对象的数据集后,点击坐标系后面的按钮 弹出下面界面,在选择里面找相应的空间参考,或在导入里面导入图层已有的空间参考。 四、影像镶嵌(合并)   ArcToolbox——数据管理工具——栅格——栅格数据集——镶嵌 来源: https://www.cnblogs.com/hibernation/p/3293157.html

ArcGIS处理栅格数据(三)

那年仲夏 提交于 2020-01-10 05:02:27
六、制作镶嵌数据集 (栅格数据集优点:a、浏览速度快;b、入库速度快;c、可指定区域显示)   1、右键目录中的数据库,新建“镶嵌数据集”。   2、添加栅格数据。   3、定义金字塔。   4、构建金字塔 七、发布地图服务    1、添加GIS服务   在目录管理器中点击添加ArcGIS Server服务器,根据向导,完成服务器的创建。确保机器已经装有ArcGIS Server软件,否则目录管理器里没有此选项。   (a)双击“添加 ArcGIS Server”。   (b)选择“管理 GIS 服务”。   (c)填写“服务器URL”和“主机名称”。   (d)添加计算机“localhost”。    2、发布地图(方式一)   (a)右击已经创建好的服务器,点击“连接”,连接服务器。   (b)有已经创建好的服务器,点击“添加新服务”,添加一个mapservice地图服务,指定服务名称。点击“下一步”,指定要发布的地图文档(mxd)和输出目录以及缓存目录。点击“下一步”选择要发布的服务类型。   (c)继续一路“下一步”,可以看到我们之前设置的一些参数,点击“完成”发布服务。   3、发布地图(方式二)   (a)添加工具条   (b)添加图层   (c)点击“地图服务发布”中的 发布地图。 八、制作地图切片 (Tile Cache)   1、右击已经发布的地图服务,点击

python 矢量数据转栅格数据

僤鯓⒐⒋嵵緔 提交于 2020-01-02 09:02:31
from osgeo import gdal,osr,ogr#定义投影sr = osr.SpatialReference('LOCAL_CS["arbitrary"]')#在内存中创建一个shape文件的图层,含有两个多边形source_ds = ogr.GetDriverByName('Memory').CreateDataSource( 'shapefile' )source_lyr = source_ds.CreateLayer('poly', srs=sr, geom_type=ogr.wkbPolygon )source_lyr.CreateField(ogr.FieldDefn('TCODE',ogr.OFTReal))wkt_geom = ['POLYGON((1020 1030 40,1020 1045 30,1050 1045 20,1050 1030 35,1020 1030 40))', 'POLYGON((1010 1046 85,1015 1055 35,1055 1060 26,1054 1048 35,1010 1046 85))']#栅格值celsius_field_values = [50,200]for i in range(len(wkt_geom)): feat = ogr.Feature(source_lyr.GetLayerDefn())