访问量: 960 次浏览

空间数据、地理空间数据、GIS 数据或地理数据是数字数据的不同名称, 其根据地理坐标系识别物理对象(例如建筑物、街道、城镇、城市、国家等)的地理位置。 从空间数据中,不仅可以找到任何对象的位置, 还可以找到其长度、大小、面积或形状, 同时可以获得的一种空间数据的示例是:对象的坐标,例如纬度、经度和高程。 地理信息系统(GIS)或其他专用软件应用程序可用于访问、可视化、操作和分析地理空间数据。 地理空间数据的一些示例包括:

关于某个位置的点、线、多边形和其他描述性信息。 矢量数据是空间元素通过其 x 和 y 坐标的表示, 矢量数据的最基本形式是点。 两个或更多的点形成一条线,三个或更多的线形成一个多边形。
最简单的形式是在定义其地理空间坐标的表中包含一个或多个额外列。 GeoJSON 等更正式的编码格式也能派上用场。 GeoJSON 是 JSON 数据格式的扩展, 包含几何特征, 可以是 Point、LineString、Polygon、MultiPoint、MultiLineString 或 MultiPolygon。 还有几个其他库可用于表示地理空间数据, 所有这些都在地理空间数据抽象库 (GDAL) 中进行了描述。
点云由 LiDAR 系统收集, 可用于创建 3D 模型。 点云是在空间中随机放置的 3D 点的集合。 传感器发出能量脉冲并乘以其返回行程(TWTT,双向行程时间)。 知道了传感器的位置以及脉冲的传输方向, 就可以确定反射面的 3D 位置。 传感器还可以测量回波的强度, 以估计反射表面的几何形状和材料成分。 LiDAR 代表光检测和测距, 机载 LiDAR 可以乘坐直升飞机或小型飞机飞行, 现在可以使用无人机。 它们显示了地面,植被,建筑物和电源线,甚至还有鸟类等。 这显示了点云的 3D 描绘。 利用计算机图形学, 该点可以绕三个轴旋转、放大和缩小。
通过高分辨率图像鸟瞰地球, 当观察一个区域的空间信息时, 可使用栅格数据。 它由一个行列矩阵组成, 每个单元格都有一些相关信息。 栅格数据的一个示例是国家或城市的卫星图像, 该图像由一个矩阵表示, 该矩阵的每个单元格中都包含天气信息。 可通过多种方式在 Python 中处理栅格数据, 其中一个用户友好包是 xarray, 它读取 netcdf 文件。
常用术语介绍
使用 Shapely, 可以创建有形状的几何对象(例如点、多边形、多多边形)并对其进行操作, 例如缓冲、计算面积或交点等。
Fiona 可以使用多层 GIS 格式和压缩虚拟文件系统读取和写入真实世界的数据, 并很容易与其他 Python GIS 包(如pyproj {.dt .iz}、Rtree和 Shapely )集成。
Geopandas 就如 pandas 遇见 GIS。 它扩展了 pandas 使用的数据类型以允许对几何类型进行空间操作。 几何运算由 Shapely 执行, 它还依赖于 Fiona 进行文件访问和 matplotlib 进行绘图。
高级地理空间绘图库。 它是对 cartopy 和 matplotlib 的扩展, 使制图变得更加容易。 它建立在其他几个流行的地理空间库之上, 以简化通常需要的编码。
如果您使用 Esri ArcGIS, 那么可能熟悉会 ArcPy 库。 ArcPy 用于地理处理操作。 但它不仅用于空间分析, 还用于 Esri ArcGIS 的数据转换、管理和地图制作。
图像处理库, 例如直方图调整、过滤器、分割、边缘检测操作、纹理特征提取等。
最好的同时易于使用的 Python 机器学习库, 可进行回归、分类、降维等。
支持将形状几何图形绘制为 matplotlib 路径、补丁, 也是 geopandas 的几何绘图功能的依赖项。
用于分区统计。 根据几何图形从栅格文件或 numpy 数组中提取统计信息。
Rasterio 是处理栅格数据的首选库。 它允许从 numpy {.dt .iz} 数组(Python 数组操作的实际标准)读取、写入光栅文件, 能够提供许多简便的方法来操作这些数组(例如掩码、矢量化等), 并且可以处理坐标参考系的变换。 就像任何其他 numpy 数组一样, 数据也可以很容易地绘制出来, 例如使用 matplotlib 库。
如果想创建交互式地图, 那么 ipyleaflet 是 Jupyter notebook 和 Leaflet 的融合。 可以控制各种自定义设置, 例如加载底图、geojson 和小部件。 它还提供了多种地图类型可供选择, 包括等值线图、速度数据和并排视图。
就像 ipyleaflet 一样, Folium 允许利用 leaflet 来构建交互式网络地图。 它能够在 Python 中操作数据, 可以使用领先的开源 JavaScript 库将其可视化。
Geemap 更倾向于使用 Google Earth Engine (GEE) 进行科学和数据分析。
Python 空间分析库包含大量用于空间分析、统计建模和绘图的函数。 它旨在支持高级应用程序的开发。
xarray 非常适合处理大量图像时间序列堆栈, 想象一下 5 个植被指数 x 24 个日期 x 256 像素 x 256 像素。 xarray 允许标记多维 numpy 数组的维度, 并将其与许多函数和 pandas 库的语法(例如 groupby、滚动窗口、绘图)相结合。
PyProj 库的主要目的是它如何与空间参考系统一起工作。 它可以用一系列地理参考系统投影和转换坐标, PyProj 还可以为任何给定的基准执行大地测量计算和距离。
GDAL/OGR 库用于在 GIS 格式和扩展名之间进行转换。 QGIS、ArcGIS、ERDAS、ENVI 和 GRASS GIS 以及几乎所有 GIS 软件都以某种方式使用它进行翻译。 目前,GDAL/OGR 支持 97 个矢量和 162 个光栅驱动程序。
RSGISLib 库是一套用于栅格处理和分析的遥感工具。 它对图像进行分类、过滤和执行统计, 很多人最喜欢的是基于对象的分割和分类 (GEOBIA) 模块。
ReportLab 是此列表中最令人满意的库之一, 原因在于 GIS 通常缺乏足够的报告能力。 特别是,如果想创建一个报告模板, 这是一个很好的选择, 但不知为什么 ReportLab 库有点不受关注。
它是一个 Python 库, 提供了一个简单的界面来读取和写入各种图像数据, 包括动画图像、体积数据和科学格式。
它为 choropleth 图实施了一系列分类方案。 重点是确定分类的数量, 并将观察结果分配给这些分类。
它是 lib_spatial_index 的 ctypes Python 包装器, 提供了许多高级空间索引功能。