暂时未有相关云产品技术能力~
暂无个人介绍
空间查询就是根据地物的空间位置进行查询的一种数据检索方式。比如,我们要查询一条河流经的城市;一个公园内的所有路灯;离当前位置最近的公共卫生间等等都属于常用的空间查询。
JavaWeb开发中的文件访问路径
之前一直对WKT、EPSG、SRID不是很理解,总是混淆,今天看了一下,清晰了很多,顺便总结一下。
Linux下使用命令行调试Python程序
安装Windows和Linux双系统需要注意的一些问题
天文地理学科经常会使用儒略日(Julian Day) 这里使用Python的datetime模块实现其和常规日期的转换
常用的空间数据处理Python库 GDAL 全能型的基础空间数据处理库 fiona 基于GDAL的空间矢量数据处理库 rasterio 基于GDAL的空间栅格处理库 basemap 基于matplotlib的空间制图库 GeoPandas 基于pandas的空间数据分析库 RSGISlib 针对遥感数据及GIS分析的高级库
GitBook是使用Git管理书籍项目,使用Markdown撰写书籍,并使用GitHub和GitBook网站进行托管的一个实用工具。下面简单说一下新手如何使用该强大的工具。
如何使用JDB命令行调试Java程序呢?
Geospatial Data Abstraction Library (GDAL)是使用C/C++语言编写的用于读写空间数据的一套跨平台开源库。现有的大部分GIS或者遥感平台,不论是商业软件ArcGIS,ENVI还是开源软件GRASS,QGIS,都使用了GDAL作为底层构建库。
有没有觉得用GDAL的Python绑定书写的代码很不Pythonic,强迫症的你可能有些忍受不了。不过,没关系,MapBox旗下的开源库Rasterio帮我们解决了这个痛点。 Rasterio是基于GDAL库二次封装的更加符合Python风格的主要用于空间栅格数据处理的Python库。
使用Fiona写入Shapefile数据,主要是构建一个Schema,然后将空间对象转为GeoJSON的形式进行写入。 这个Schema是一个字典结构,定义了Geometry的类型,属性字段的名称及其类型。
使用Rasterio创建并写入栅格数据比GDAL还简单一些,基本使用到两个函数:rasterio.open()和write()
GDAL 2.1已经原生支持对于Sentinel数据的读取,我这里使用Sentinel-2光学卫星数据给出使用GDAL工具对其进行读取的方法。 这里我们要大概知道Sentinel数据的组织。下载下来的Sentinel数据是一个ZIP压缩包,里面包含了JPEG2000格式的影像数据以及一些XML格式的元数据文件。 GDAL将Sentinel数据看做一个数据集(概念上类似HDF格式的数据集),里面包含了很多子数据文件。所以,对于Sentinel数据的读取就和对于HDF数据的读取是相同的啦。
有人说相关系数(correlation coefficient, r)和决定系数(coefficient of determination, R2,读作R-Squared)都是评价两个变量相关性的指标,且相关系数的平方就是决定系数?这种说法对不对呢?请听下文分解!
Morton码是对栅格格网进行编码的一种算法,在Google中搜索Morton,搜索结果第一位是Wikipedia的Z-order Curve,这是因为Morton码编码结果展现为一种Z形的填充曲线。下面简要说一下如何计算四进制和十进制的Morton码。
我们知道Python中没有类似C++或者Java中的switch...case语句,我们可以使用多个if...elif...else进行模拟,但是这样的写法让代码看起来很凌乱,个人不是很推荐在代码中大量使用if语句。那么解决的办法是什么呢?答曰:字典(dict)。下面我们以两个典型案例进行说明。
欧盟的SNAP工具包提供了对Sentinel卫星数据的处理功能。 SANP使用Java编写,UI界面使用了NetBeans框架。 如果要进行批处理的话,还提供了基于图的Graph Processing Framework (GPF)处理模式。
SNAP软件使用Java语言开发,提供了Python接口snappy,官方教程中也多以Python接口进行示范。但是我在使用Python接口过程中,发现并不是很好用,你必须要同时懂Java语言才能很好地使用Python接口,在IDEA中使用Python接口的代码基本上没有提示,报错了也是Java的错误提示。而且,Java本来是运行在虚拟机上的语言,效率不高,再用Python包一层,更加降低了运行效率。
如何使用PowerShell批量删除注册表项呢?
今天在研究PyTorch中Tensor的一些操作的时候,发现其底层Tensor的操作都是用C++写的,并使用[pybind11](https://github.com/pybind/pybind11)进行C++和Python的桥接。所以,我就想着探索一下Python中如何调用C++代码?
在使用C++ STL的vector时,下面三种写法有什么不同呢?其内存分配是怎么样的呢? 首先,说结论吧(假设T是一个定义好的类): 对于std::vector<T> vec;这种方式vec在栈上(stack),而其中的元素T保存在堆上(heap); 对于std::vector<T>* vec = new std::vector<T>();这种方式vec和其中的元素T都保存在堆上; 对于std::vector<T*> vec;这种方式vec在栈上(stack),而其中的元素T保存在堆上(heap);和第一种情况类似。
这是我第一次尝试着录制视频教程,没有多少经验。希望看到我视频的朋友,给我多提意见。本教程共有10集,每周更新一集,每集20到30分钟。请看到的朋友,多多提意见和建议。通过大家的反馈,我可以提供更好的视频教程给大家。
这是使用Python进行空间数据处理的系列教程。如果有热心网友对我的该系列博客《Python空间数据处理实战》有什么好的建议的话,比如需要增加哪些内容,写作风格上的改进等,可以直接给我留言或者发邮件,谢谢大家,希望我的分享能帮助到一些热衷GIS与RS数据处理的童鞋!如果有出版社希望,该系列的教程能够出版发行,欢迎联系作者!