大家好我是费老师,在我之前的某篇文章中为大家介绍过如何在windows系统上,基于ESRI FileGDB驱动为geopandas补充针对gdb文件的写出、追加功能,但那种方式既有些麻烦,又不支持linux等其他系统,局限性颇多,且经常会出现一些小问题。
事情起因于在推特看到关于ggVennDiagram这个 R 包教程的一条推文,想着去复现一下,于是开始去安装,不料安装过程中出现了sf这个依赖包始终安装不成功的一堆错误,于是有了这一篇文章,特此记录一下,也希望给遇到类似问题的小伙伴一个参考。
Conda的下载和安装 什么是Conda? 官方定义:Package, dependency and environment management for any language—Python, R
以上一个代码实例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 等特性。
GDAL可通过configure来实现一些自定义配置,可通过./configure –h命令来查看。--prefix=path表示设置GDAL的make install后的build目录,里面有生成的头文件和动态库。输入如下命令:
Geospatial Data Abstraction Library (GDAL)是使用C/C++语言编写的用于读写空间数据的一套跨平台开源库。现有的大部分GIS或者遥感平台,不论是商业软件ArcGIS,ENVI还是开源软件GRASS,QGIS,都使用了GDAL作为底层构建库。
WRF中地形数据(海拔高度)分辨率最高为30s,差不多就是900m,当模型空间分辨率较高时,比如在低于1km的情况下,经常会考虑增加地形高度的分辨率,这里使用美国的SRTM( Shuttle Radar Topography Mission)的DEM数据,这个数据覆盖了全球陆地,在美国本地分辨率为1s,其他地区为3s(约90m),因此使用这个更高分辨率数据来测试一下。
顺便安装postgresql-devel、libxml2-devel,后边编译安装PostGIS会用到。
[[[200 228 197] [200 228 197] [200 228 197] ... ... [200 228 197] [200 228 197] [200 228 197]]]
NetCDF文件是自描述的二进制数据格式。所谓自描述就是自带属性信息,这和一般的雷达基数据格式不同,一般的雷达数据也是二进制的,但不是自描述的,而是需要额外的数据格式文档来说明数据格式,而NetCDF文件中包含了描述变量和维度的元数据信息。通常包含以下三个部分:
大家好我是费老师,很多读者朋友跟随着我先前写作的基于geopandas的空间数据分析系列教程文章(快捷访问地址:https://www.cnblogs.com/feffery/tag/geopandas/),掌握了有关geopandas的诸多实用方法,从而更方便地在Python中处理分析GIS数据。其中在文件IO篇中给大家介绍过针对ESRI GeoDataBase格式的文件(也就是大家简称的gdb文件),可以在指定图层名layer参数后进行读取,但无法进行gdb文件的写出操作。
在python与地理空间分析(1)与(2)中我们介绍了GIS中常用的数据类型、python在处理地理空间数据时用到的包以及给定经纬度计算空间距离的算法,本期我们主要介绍对地理空间分析中常用到的矢量数据shp文件的处理,在捍卫祖国领土从每一张地图开始我们也提供较为精准的包括南海九段线的中国地图,大家可以自行下载。
在进行遥感影像处理的时候,我们经常需要进行裁剪的工作,来看看如何使用GDAL工具进行这项操作吧!
将该目录添加到自己的环境变量Path中,比如我的路径是:E:\C++\Library\gdal\release-1800-gdal-2-1-0-mapserver-7-0-1\bin
GDAL是使用PROJ进行坐标转换的,但是很容易出现转换不了的问题,这里总结一二,以供参考。
今天在笔记本(macOS平台)上折腾了一下如何搭建GDAL的Java开发环境。虽然GDAL的Python接口更好用,但是有时候需要协同使用一些Java库的时候,也必须使用Java版本的GDAL。
本文介绍基于gdal模块,在命令行中通过GDAL命令的方式(不是Python或者C++代码,就是gdal模块自身提供的命令行工具),对栅格遥感影像数据加以投影,即将原本的地理坐标系转为投影坐标系的方法。
本文介绍在Anaconda环境下,基于.whl文件安装Python中高级地理数据处理库GDAL的方法。
modis的hdf文件在存储上有优势,但是在实际使用过程中存在一定的弊端。例如本次重点讲解的NDVI-16D-1km、MAIAC-1D-1km两类文件,其中maiac的文件在aod属性中包含4个波段的文件,需要将4个波段最大化的利用起来。而ndvi文件则较为简单只需要把hdf文件中对应部分取用即可。
首先利用arcgis对landsat影像打点云样本和非云样本点图层,转为csv,用作机器学习检测样本
gdal.Warp是一个很好用的函数们可以用来重投影、影像裁剪等。用它对MODIS数据进行重投影很简单。
现在最新的proj5.2.0已经可以通过cmake进行编译了,尝试了一下确实比以前要方便点。解压下载的proj5.2.0的压缩包,在cmake界面填入如下路径:
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上实现了,在此分享给大家。
Typing模块的改进、新版本的pickle协议、可反转字典、Python C API和CPython实现、多进程共享内存
Modis数据向来风骚,其HDF里包含了很多subdataset,其中有一个maiac的数据尤为特别。Maiac文件里含有大概12个数据集,每个数据集里又有4个波段(维度),如果按GDAL的translate函数直接转换,将得到错误的结果,会只得到第一个波段Band1如下:
1、双击Anaconda3-4.4.0-Windows-x86_64.exe安装,安装目录D:\ProgramData\Anaconda3
Gdal的官网一搜就有了:www.gdal.org。里面对gdal各种函数的描绘,一应俱全,有时候即使不用python的gdal包。通过安装gdal后,也能使用subprocess调用cmd,使用gdal的各种功能和函数。
反正我不是很熟,我只知道它很酷、很快、而且很厉害,不过好像也有很多缺陷。很酷很快很厉害我就不多说了,网上的彩虹屁多的和牛毛一样。我主要想说说几个问题,虽然这些问题可能只有我会遇到(意思是可能我安装的姿势不太对)。
gdal.open(r'D:/Thesis/ML/modis3km/MOD04_3K.A2018001.0320.061.2018003202214.hdf')
本文介绍在Anaconda环境下,安装Python中栅格、矢量等地理数据处理库GDAL的方法。
osgEarth支持.earth格式的文件,里面保存了数字地球相关信息的配置XML,只需要读取这个配置文件,就可以直接得到相应的数字地球相关效果。但实际使用中还是感觉到有些不便,有些效果没办法保存下来,所以很多时候还是使用代码实现比较好。osgEarth最基础的就是显示一个数字地球了。
本文介绍在Visual Studio软件中配置、编译C++环境下GDAL库、SQLite环境与PROJ库的详细方法。
上回说到用GDAL的部分应用,那不安装GDAL怎么行。可能你们的安装都是一帆风顺,但我的并不是。虽然在实际使用过程中,GDAL并不是十全十美,但胜在快,如果你像我一样动辄数千个影像的处理,等10个小时和2个小时差别是很大的。很大原因上,快比什么都重要。不然也不至于在多进程、分布式,各种纠结啦~
GDAL 是 Geospatial Data Abstraction Library 的缩写,是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。
下面的例子打开一副GeoTIFF影像,输出了影像的一些信息,然后遍历了所有波段,输出波段的一些信息
作为摄影测量与遥感的从业者,笔者最近开始深入研究gdal,为工作打基础!个人觉得gdal也是没有什么技术含量,调用别人的api。但是想想这也是算法应用的一个技能,多学无害!
2. 安装g++ yum install gcc-c++ libstdc++-devel
使用VS2015编译最新的64位GDAL(最新gdal2.11),确实有一些问题,看来双方还是太新了,有点不兼容,特总结如下。
这篇文章主要描述了如何使用GDAL/OGR打开矢量文件、读取属性表,并将部分属性写出至txt。
概述: 本文讲述如何在Python中用GDAL实现根据输入矢量边界对栅格数据的裁剪。 效果: 裁剪前 矢量边界 裁剪后 实现代码: # -*- coding: utf-8 -*- """ @autho
其实使用第一次的方法是有好处的,你可以任意改变镶嵌重叠区域的代码构造,你可以用顶层像元、底层像元、平均像素值等不同的算法,理论上gdal_merge.py应该也有这些代码,暂时没有研究,不过能用python进行镶嵌的实现,也是足够让人兴奋了。
活好多,都没有时间自己搞些自己喜欢的东西。研究生大概也就这样了!不抱怨了,进入正题。
可以通过GDAL给地理数据写入空间参考信息,不过要注意的是GDAL给矢量数据和栅格数据写入空间坐标参考的接口不太一样。
使用Python进行栅格数据处理,很多时候,我们会将GDAL的Dataset对象转化为NumPy的ndarray对象,这样我们可以使用很多通用的Python库对数据进行处理,然后再借助GDAL库将数据写回到文件。
wget http://download.osgeo.org/gdal/2.0.0/gdal-2.0.0.tar.gz tar -xzvf gdal-2.0.0.tar.gz
领取专属 10元无门槛券
手把手带您无忧上云