Python地理数据机器学习数学

地理数据

地理数据是存储在地理信息系统 (GIS) 中的位置信息。通过查看具有地理成分的数据,我们可以通过不同的视角来看待它。

用地理数据解决位置问题需要空间思维。让我们深入了解地理数据的类型、主题和来源。

类型

地理数据有不同类型,每种类型在使用方式上都有其独特的价值。

无论数据来自政府、私人来源还是开放数据,了解数据的类型、数据的来源、数据的收集方式以及数据的用途都很重要。

  • 矢量文件:矢量数据由顶点和路径组成。矢量数据的三种基本类型是点、线和多边形(面)。每个点、线和多边形都有一个空间参考系,例如纬度和经度。首先,向量点只是 XY 坐标。其次,矢量线以特定顺序将每个点或顶点与路径连接起来。最后,多边形连接一组顶点。但它包围了第一个和最后一个顶点,创建了一个多边形区域。
  • 光栅文件:栅格数据由像素或网格单元组成。通常,它们是方形的并且间隔规则。但光栅也可以是矩形的。栅格将值与每个像素相关联。连续栅格具有逐渐变化的值,例如海拔或温度。但离散栅格将每个像素设置为特定类别。例如,我们将土地覆盖类别表示为一组值。
  • 地理数据库:地理数据库的目的是存储矢量和栅格。数据库将地理数据存储为一组结构化的数据/信息。例如,Esri 地理数据库、地理包和 SpatiaLite 是最常见的地理数据库类型。我们使用地理数据库,因为这是一种将所有数据放入单个容器中的方法。在这个容器中,我们可以构建网络、创建马赛克、进行版本控制并管理复杂的空间关系,从而实现地理数据的全面分析和表示。
  • 网页文件:例如,GeoJSON、GeoRSS 和 Web 地图服务 (WMS) 专门用于通过互联网提供和显示地理特征。此外,Esri 的 ArcGIS Online 等在线平台允许组织在云中构建数据仓库。
  • 多时相:多时态数据将时间成分附加到信息上。但多时相地理数据不仅具有时间成分,还具有地理成分。例如,天气和气候数据跟踪温度和气象信息在地理背景下如何随时间变化。多时相地理数据的其他示例包括人口趋势、土地利用模式和雷击。

Python处理地理数据

读取形状文件

首先,我们将导入 geopandas 库,然后使用变量"world_data"读取我们的 shapefile。 Geopandas 可以使用以下命令读取几乎任何基于矢量的空间数据格式,包括 ESRI shapefile、GeoJSON 文件等:

python 复制代码
import geopandas as gpd 

# Reading the world shapefile 
world_data = gpd.read_file(r'world.shp') 

world_data
绘图

如果您想检查正在使用的数据类型,请转到控制台并输入"type(world_data)",它会告诉您这不是 pandas 数据,而是 geopandas 地理数据。接下来,我们将使用plot()方法绘制这些GeoDataFrame。

python 复制代码
import geopandas as gpd 

# Reading the world shapefile 
world_data = gpd.read_file(r'world.shp') 

world_data.plot() 
选择列

如果我们看到"world_data"GeoDataFrame 显示了许多列(Geoseries),您可以通过以下方式选择特定的 Geoseries:

python 复制代码
import geopandas as gpd 

# Reading the world shapefile 
world_data = gpd.read_file(r'world.shp') 

world_data = world_data[['NAME', 'geometry']]
计算面积

我们可以通过创建新列"area"并使用area属性,使用geopandas计算每个国家的面积。

python 复制代码
import geopandas as gpd 

# Reading the world shapefile 
world_data = gpd.read_file(r'world.shp') 

world_data = world_data[['NAME', 'geometry']] 

# Calculating the area of each country 
world_data['area'] = world_data.area 
移除大陆

我们可以从 Geoseries 中删除特定元素。在这里,我们将从"名称"地质系列中删除名为"南极洲"的大陆。

python 复制代码
import geopandas as gpd 

# Reading the world shapefile 
world_data = gpd.read_file(r'world.shp') 

world_data = world_data[['NAME', 'geometry']] 

# Calculating the area of each country 
world_data['area'] = world_data.area 

# Removing Antarctica from GeoPandas GeoDataframe 
world_data = world_data[world_data['NAME'] != 'Antarctica'] 
world_data.plot() 
可视化特定国家/地区
坐标参考系
使用颜色图 (cmap)
添加图例
调整图例大小
使用 Geoplot 库的 Polyplot 和 Pointplot
Geoplot 中的等值线
Geoplot 中的 KDE 图

地理数据机器学习数学

参阅一:亚图跨际
参阅二:亚图跨际
相关推荐
肥猪猪爸5 分钟前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet
LZXCyrus33 分钟前
【杂记】vLLM如何指定GPU单卡/多卡离线推理
人工智能·经验分享·python·深度学习·语言模型·llm·vllm
Enougme37 分钟前
Appium常用的使用方法(一)
python·appium
懷淰メ42 分钟前
PyQt飞机大战游戏(附下载地址)
开发语言·python·qt·游戏·pyqt·游戏开发·pyqt5
我感觉。1 小时前
【机器学习chp4】特征工程
人工智能·机器学习·主成分分析·特征工程
hummhumm1 小时前
第 22 章 - Go语言 测试与基准测试
java·大数据·开发语言·前端·python·golang·log4j
DieYoung_Alive1 小时前
一篇文章了解机器学习(下)
人工智能·机器学习
hummhumm1 小时前
第 28 章 - Go语言 Web 开发入门
java·开发语言·前端·python·sql·golang·前端框架
幻风_huanfeng1 小时前
人工智能之数学基础:线性代数在人工智能中的地位
人工智能·深度学习·神经网络·线性代数·机器学习·自然语言处理
请你喝好果汁6411 小时前
单细胞|M3-4. 细胞聚类与轨迹推断
机器学习·数据挖掘·聚类