在进行遥感影像处理的时候,我们经常需要进行裁剪的工作,来看看如何使用GDAL工具进行这项操作吧!
将该目录添加到自己的环境变量Path中,比如我的路径是:E:\C++\Library\gdal\release-1800-gdal-2-1-0-mapserver-7-0-1\bin
GDAL是使用PROJ进行坐标转换的,但是很容易出现转换不了的问题,这里总结一二,以供参考。
事情起因于在推特看到关于ggVennDiagram这个 R 包教程的一条推文,想着去复现一下,于是开始去安装,不料安装过程中出现了sf这个依赖包始终安装不成功的一堆错误,于是有了这一篇文章,特此记录一下,也希望给遇到类似问题的小伙伴一个参考。
今天在笔记本(macOS平台)上折腾了一下如何搭建GDAL的Java开发环境。虽然GDAL的Python接口更好用,但是有时候需要协同使用一些Java库的时候,也必须使用Java版本的GDAL。
本文介绍基于gdal模块,在命令行中通过GDAL命令的方式(不是Python或者C++代码,就是gdal模块自身提供的命令行工具),对栅格遥感影像数据加以投影,即将原本的地理坐标系转为投影坐标系的方法。
modis的hdf文件在存储上有优势,但是在实际使用过程中存在一定的弊端。例如本次重点讲解的NDVI-16D-1km、MAIAC-1D-1km两类文件,其中maiac的文件在aod属性中包含4个波段的文件,需要将4个波段最大化的利用起来。而ndvi文件则较为简单只需要把hdf文件中对应部分取用即可。
本文介绍在Anaconda环境下,基于.whl文件安装Python中高级地理数据处理库GDAL的方法。
首先利用arcgis对landsat影像打点云样本和非云样本点图层,转为csv,用作机器学习检测样本
gdal.Warp是一个很好用的函数们可以用来重投影、影像裁剪等。用它对MODIS数据进行重投影很简单。
现在最新的proj5.2.0已经可以通过cmake进行编译了,尝试了一下确实比以前要方便点。解压下载的proj5.2.0的压缩包,在cmake界面填入如下路径:
Typing模块的改进、新版本的pickle协议、可反转字典、Python C API和CPython实现、多进程共享内存
Geoserver默认支持的栅格数据源比较少,包括ArcGrid,GeoTiff,WorldImage,ImageMosaic等,是不支持Erdas Img格式的栅格数据源的,因此,为了能够让Geoserver支持发布Erdas Img格式的数据源,需要用GDAL的插件对Geoserver进行扩展,本文讲述如何在Geoserver中配置并支持Erdas Img格式的数据源。
前两天,有位同仁再问我一个问题,问题大概是介个样子的:打包shp数据位zip格式并上传,上传完成后再在web上展示出来。这个需求,以前在Arcgis Online上见过,所以还是比较熟悉的,所以我就给他说:先将zip解压,再读取shp数据并将之转换为Geojson返回前台,并在web上展示出来。很庆幸的是,者为同仁很快就实现了shp到Geojson的转换,就问我Arcgis for js 中怎么展示Geojson,我截了个Arcgis for js的API给他他就实现了上述的功能。同时,我想他请教了如何实现的转换,他告诉我说是GDAL实现的,并给了我关键代码,因为代码是C#的,所以,经过周末的折腾,在JAVA上实现了,在此分享给大家。
Modis数据向来风骚,其HDF里包含了很多subdataset,其中有一个maiac的数据尤为特别。Maiac文件里含有大概12个数据集,每个数据集里又有4个波段(维度),如果按GDAL的translate函数直接转换,将得到错误的结果,会只得到第一个波段Band1如下:
1、双击Anaconda3-4.4.0-Windows-x86_64.exe安装,安装目录D:\ProgramData\Anaconda3
gdal.open(r'D:/Thesis/ML/modis3km/MOD04_3K.A2018001.0320.061.2018003202214.hdf')
Gdal的官网一搜就有了:www.gdal.org。里面对gdal各种函数的描绘,一应俱全,有时候即使不用python的gdal包。通过安装gdal后,也能使用subprocess调用cmd,使用gdal的各种功能和函数。
反正我不是很熟,我只知道它很酷、很快、而且很厉害,不过好像也有很多缺陷。很酷很快很厉害我就不多说了,网上的彩虹屁多的和牛毛一样。我主要想说说几个问题,虽然这些问题可能只有我会遇到(意思是可能我安装的姿势不太对)。
本文介绍在Anaconda环境下,安装Python中栅格、矢量等地理数据处理库GDAL的方法。
osgEarth支持.earth格式的文件,里面保存了数字地球相关信息的配置XML,只需要读取这个配置文件,就可以直接得到相应的数字地球相关效果。但实际使用中还是感觉到有些不便,有些效果没办法保存下来,所以很多时候还是使用代码实现比较好。osgEarth最基础的就是显示一个数字地球了。
本文介绍在Visual Studio软件中配置、编译C++环境下GDAL库、SQLite环境与PROJ库的详细方法。
上回说到用GDAL的部分应用,那不安装GDAL怎么行。可能你们的安装都是一帆风顺,但我的并不是。虽然在实际使用过程中,GDAL并不是十全十美,但胜在快,如果你像我一样动辄数千个影像的处理,等10个小时和2个小时差别是很大的。很大原因上,快比什么都重要。不然也不至于在多进程、分布式,各种纠结啦~
大家好我是费老师,在我之前的某篇文章中为大家介绍过如何在windows系统上,基于ESRI FileGDB驱动为geopandas补充针对gdb文件的写出、追加功能,但那种方式既有些麻烦,又不支持linux等其他系统,局限性颇多,且经常会出现一些小问题。
GDAL 是 Geospatial Data Abstraction Library 的缩写,是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。
下面的例子打开一副GeoTIFF影像,输出了影像的一些信息,然后遍历了所有波段,输出波段的一些信息
Geospatial Data Abstraction Library (GDAL)是使用C/C++语言编写的用于读写空间数据的一套跨平台开源库。现有的大部分GIS或者遥感平台,不论是商业软件ArcGIS,ENVI还是开源软件GRASS,QGIS,都使用了GDAL作为底层构建库。
作为摄影测量与遥感的从业者,笔者最近开始深入研究gdal,为工作打基础!个人觉得gdal也是没有什么技术含量,调用别人的api。但是想想这也是算法应用的一个技能,多学无害!
2. 安装g++ yum install gcc-c++ libstdc++-devel
这篇文章主要描述了如何使用GDAL/OGR打开矢量文件、读取属性表,并将部分属性写出至txt。
概述: 本文讲述如何在Python中用GDAL实现根据输入矢量边界对栅格数据的裁剪。 效果: 裁剪前 矢量边界 裁剪后 实现代码: # -*- coding: utf-8 -*- """ @autho
使用VS2015编译最新的64位GDAL(最新gdal2.11),确实有一些问题,看来双方还是太新了,有点不兼容,特总结如下。
其实使用第一次的方法是有好处的,你可以任意改变镶嵌重叠区域的代码构造,你可以用顶层像元、底层像元、平均像素值等不同的算法,理论上gdal_merge.py应该也有这些代码,暂时没有研究,不过能用python进行镶嵌的实现,也是足够让人兴奋了。
使用Python进行栅格数据处理,很多时候,我们会将GDAL的Dataset对象转化为NumPy的ndarray对象,这样我们可以使用很多通用的Python库对数据进行处理,然后再借助GDAL库将数据写回到文件。
活好多,都没有时间自己搞些自己喜欢的东西。研究生大概也就这样了!不抱怨了,进入正题。
可以通过GDAL给地理数据写入空间参考信息,不过要注意的是GDAL给矢量数据和栅格数据写入空间坐标参考的接口不太一样。
wget http://download.osgeo.org/gdal/2.0.0/gdal-2.0.0.tar.gz tar -xzvf gdal-2.0.0.tar.gz
参看《从二进制数据流中构造GDAL可以读取的图像数据》这篇文章。这个问题的内涵在于,处理图像时都会将其读取成宽X高X波段的三维数组的内存Buffer,但是图像文件本身却会被压缩成各种各样的数据类型(jpg、png、tif等)。在某些直接获取到数据流的情况下,可以直接在内存中构建GDAL数据集并进行读写操作,这样就可以避免磁盘IO的性能。
以上一个代码实例gdal计算NDVI为例: 如何在Linux下使用gcc进行编译? (顺便说一下,上次的代码只能在gdal1下编译,因为gdal2和1的API稍微有些改动) gdal的动态链接库如果采用默认的安装方式应该在/usr/local/lib目录下面,而头文件在/usr/include/gdal目录下面。 那么,我们的编译命令应该是这样的:g++ NDVI.cpp -std=c++11 -I/usr/include/gdal -L/usr/local/lib -lgdal -o NDVI.o 其中: -std=c++11 指定使用C++11标准进行编译。因为上一个代码中使用了C++11中的std::array 等特性。
顺便安装postgresql-devel、libxml2-devel,后边编译安装PostGIS会用到。
Basemap 特别擅长绘制数值天气模式输出数据,比如 WRF。WRF [注1] 模式是广泛使用的数值预报模式,只要变量名合适,大部分情况下都可以使用其它模式的输出来运行。
这里使用 ubuntugis提供的gdal进行安装。 首先更新一下ubuntugis的源:
最近研究了一下GIS、测绘学的坐标转换的问题,感觉大部分资料专业性太强,上来就是一通专业性论述;但感觉对于相关从业者来说,其实不必了解那么多背景知识的;就通过GDAL这个工具,来简单总结下坐标转换相关的问题。 GDAL坐标转换其实也是调用proj4来实现,但是proj4有个特别麻烦的地方,就是坐标系描述的部分特别繁复,需要对专业知识有一定的了解。使用GDAL则相对简单很多。
版权声明:本文为博主原创文章,转载请注明原文出处! https://blog.csdn.net/T_27080901/article/details/82194108
注意读取数据的数组下标不要越界!GDAL并不会自动帮你处理下标越界的问题,它只会报错。因此特别当你想用部分读取的方式处理一个很大的文件时,对边界的处理需要你特别的注意,必须正好读完不能越界也不能少读。
将转换成png后的图加载到软件中(专业软件ENVI5.3)查看结果详细信息如下图所示,成功的转换成png格式了。
领取专属 10元无门槛券
手把手带您无忧上云