暂时未有相关云产品技术能力~
暂无个人介绍
空间查询就是根据地物的空间位置进行查询的一种数据检索方式。比如,我们要查询一条河流经的城市;一个公园内的所有路灯;离当前位置最近的公共卫生间等等都属于常用的空间查询。
如果从图中某一顶点(称为源点)到达另一顶点(称为终点)的路径可能不止一条,如何找到一条路径使得沿此路径上各边上的权值总和达到最小。
Java中的正则表达式规则,如何写正则表达式?
Java中跟字符串相关的几个常用类
Java中String类应该注意的一些地方
C#中的Lambda表达式
C#中的LINQ入门学习
JavaWeb开发中的文件访问路径
Java中文件路径及其访问
C++中Lambda表达式
Java8 Lambda表达式入门
C成也指针,败也指针。确实,指针给程序员提供了很多便利和灵活性,但是不当的指针使用也会造成很多问题。 Java和C#避免了指针(虽然C#中也能使用指针,但是估计很少有人这样做),其垃圾回收机制,给程序员减轻很多管理内存的负担。
大家都知道,C++的const关键字是申明一个常量,以前没有深入接触C++的时候也没觉得有什么特别的用法。 下面说说我最近工作中发现的关于const的一些使用惯例,我这里所说的使用惯例,是指C++编码中推荐的做法。
之前一直对WKT、EPSG、SRID不是很理解,总是混淆,今天看了一下,清晰了很多,顺便总结一下。
Voronoi多边形和Delaunay三角剖分
Python函数参数传递:传值还是传引用
Linux下使用命令行调试Python程序
安装Windows和Linux双系统需要注意的一些问题
这篇博文是对Debugging Shell Scripts in Linux的翻译,希望能帮助到在Linux下写Shell脚本的童鞋。 大多数编程语言都有可用的调试工具,调试工具可用在执行程序或脚本的时候让你检查其内部是如何进行的。对于Shell脚本,我们没有任何可用的调试工具,唯一有的是通过命令行的标识(-n,-v和-x)来辅助我们调试脚本。
由于Python中线程封锁机制,导致Python中的多线程并不是正真意义上的多线程。当我们有并行处理需求的时候,可以采用多进程迂回地解决。
天文地理学科经常会使用儒略日(Julian Day) 这里使用Python的datetime模块实现其和常规日期的转换
常用的空间数据处理Python库 GDAL 全能型的基础空间数据处理库 fiona 基于GDAL的空间矢量数据处理库 rasterio 基于GDAL的空间栅格处理库 basemap 基于matplotlib的空间制图库 GeoPandas 基于pandas的空间数据分析库 RSGISlib 针对遥感数据及GIS分析的高级库
GitBook是使用Git管理书籍项目,使用Markdown撰写书籍,并使用GitHub和GitBook网站进行托管的一个实用工具。下面简单说一下新手如何使用该强大的工具。
HDF是对HDF数据模型,数据格式以及HDF库API等一系列技术的总称. HDF的最新版本是HDF5. HDF数据模型基于组(groups)和数据集(datasets)概念:如果把HDF数据比作磁盘,那么组相当于文件夹,数据集相当于文件。组和数据集都有用户自定义的属性(attributes). MODIS影像,以及我国的风云卫星数据都适用HDF格式进行存储.
如何使用JDB命令行调试Java程序呢?
Geospatial Data Abstraction Library (GDAL)是使用C/C++语言编写的用于读写空间数据的一套跨平台开源库。现有的大部分GIS或者遥感平台,不论是商业软件ArcGIS,ENVI还是开源软件GRASS,QGIS,都使用了GDAL作为底层构建库。
用GDAL的Python绑定API书写程序有没有一种仍然在写C/C++的感觉,Fiona基于GDAL提供了更加Pythonic的读取空间矢量数据的API,参见:http://toblerity.org/fiona/index.html
有没有觉得用GDAL的Python绑定书写的代码很不Pythonic,强迫症的你可能有些忍受不了。不过,没关系,MapBox旗下的开源库Rasterio帮我们解决了这个痛点。 Rasterio是基于GDAL库二次封装的更加符合Python风格的主要用于空间栅格数据处理的Python库。
使用Fiona写入Shapefile数据,主要是构建一个Schema,然后将空间对象转为GeoJSON的形式进行写入。 这个Schema是一个字典结构,定义了Geometry的类型,属性字段的名称及其类型。
使用Rasterio创建并写入栅格数据比GDAL还简单一些,基本使用到两个函数:rasterio.open()和write()
在Matplotlib库中提供了两种风格的API供开发者使用:一种是Pyplot编程接口(state-based),一种是面向对象对象的编程接口(object-based)。
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)都是评价两个变量相关性的指标,且相关系数的平方就是决定系数?这种说法对不对呢?请听下文分解!
记得大学时候学习概率论与数理统计的时候,学习过假设检验,但我不记得课本上有提到过P值。后来翻阅了一些资料,大概弄明白了它们之间的关系,本文旨在以浅显易懂的语言描述严密的数学知识。
Morton码是对栅格格网进行编码的一种算法,在Google中搜索Morton,搜索结果第一位是Wikipedia的Z-order Curve,这是因为Morton码编码结果展现为一种Z形的填充曲线。下面简要说一下如何计算四进制和十进制的Morton码。
NumPy中的维度是一个很重要的概念,很多函数的参数都需要给定维度Axis,如何直观的理解维度呢?我们首先以二维数组为例进行说明,然后推广到多维数组。 (有人将ndim属性叫维度,将axis叫轴,我还是习惯将axis称之为维度,axis=0称为第一个维度)
我们知道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批量删除注册表项呢?
在使用Tidyverse提供的各种函数时,我们很多时候都会直接传递DataFrame的列名作为函数参数,对对应的列进行操作。如果我们自定义的函数中需要传递列名作为函数参数,如何实现呢?
读完这篇博文你可以了解变分的基本概念,以及使用变分法求解最简泛函的极值。本文没有严密的数学证明,只是感性地对变分法做一个初步了解。
Shell脚本中字符串的一些常用操作,记录以备日常查阅。
Scala和Kotlin作为运行在JVM上的编程语言,解决了Java的很多痛点。今天我们来聊聊如何将Scala和Kotlin作为脚本语言使用(Java不支持以脚本形式运行哦)。
C#中有多维数组和交错数组,两者有什么区别呢! 直白些,多维数组每一行都是固定的,交错数组的每一行可以有不同的大小。 以二维的举例,二维数组就是m×n的矩阵,m行n列;而交错数组(又叫锯齿数组)有m行,但是每一行不一定是n列。Got it? 在这个意义上,C++和Java中的多维数组起始相当于C#中的交错数组,要使用多维数组,只需要保证每个维度的长度是相等的就OK了! 因为m×n的矩阵这样的多维数组比较常用,感觉C#中对两个进行了区分,提供了一些便利!
在 C# 中,派生类可以包含与基类方法同名的方法。 基类方法必须定义为 virtual。 如果派生类中的方法前面没有 new 或 override 关键字,则编译器将发出警告,该方法将有如存在 new 关键字一样执行操作。 如果派生类中的方法前面带有 new 关键字,则该方法被定义为独立于基类中的方法。 如果派生类中的方法前面带有 override 关键字,则派生类的对象将调用该方法,而不是调用基类方法。 可以从派生类中使用 base 关键字调用基类方法。
什么是C#中的可空类型修饰符?如何使用呢?
使用基本的C++知识实现一个简单的String类,这个类中包含了C++常用的知识点。感觉是很有意思的一个小代码片段。 跟大家分享一下我的实现,欢迎大家批评指正。
C++中的万能引用和完美转发是什么呢?有什么用?
这篇博文中通过实现对String字符串大小写转换为列来说明C++中函数指针和std::function对象的使用。 我们在博文《C++实现一个简单的String类》中的自定义的String类为基础,再添加两个成员函数用于将字符串全部转为大写(toUpperCase)和全部转为小写(toLowerCase)。