用Ensaio下载GIS数据
文章目录
- 简介
- 重力场绘制
简介
Ensaio在葡萄牙语中是随笔的意思,是一个用于下载开源数据集的python库。其底层基于Pooch来下载和管理数据。
Ensaio可通过pip或者conda来安装
pip isntall ensaio
conda install ensaio --channel conda-forge
由于这个库功能较为单一,所以其内容也较少,除了用于定位系统缓存文件夹的locate函数之外,剩下的几乎都是下载专门数据集的函数了,这些函数的参数只有一个,即数据版本,列表如下
函数 | 数据名称 | 数据地址 |
---|---|---|
fetch_alps_gps | Alpine的GPS速度数据集 | Sánchez et al. (2018) |
fetch_britain_magnetic | 英国数字化航空磁测 | British Geological Survey |
fetch_british_columbia_lidar | 加拿大Trail群岛的点云数据 | LidarBC |
fetch_earth_geoid | 地球大地水准面高度,分辨率为 1 0 ′ 10' 10′ | EIGEN-6C4 model |
fetch_earth_gravity | 地球重力场,分辨率为 1 0 ′ 10' 10′ | EIGEN-6C4 model |
fetch_lightning_creek_magnetic | 澳大利亚磁异常网格 | Carr, B… |
fetch_osborne_magnetic | 澳大利亚奥斯本矿附近的磁航测量 | Geophysical… |
fetch_sierra_negra_topography | 2018年厄瓜多尔塞拉内格拉火山熔岩流的地形 | Geophysical… |
fetch_caribbean_bathymetry | 加勒比海的单波束测深 | NOAA NCEI |
fetch_southern_africa_gravity | 非洲南部重力的地面勘测 | NOAA NCEI |
fetch_bushveld_gravity | 非洲南部Bushveld基地的地面重力数据 | 重力:NOAA NCEI 拓扑:ETOPO1 |
fetch_earth_topography | 地形数据,分辨率为 1 0 ′ 10' 10′ | ETOPO1 |
fetch_southern_africa_topography | 非洲南部地形和测深数据 | ETOPO1 |
这些数据的预处理方法可以在github上找到:fatiando-data。
重力场绘制
以重力场数据为例,下载方法如下,需要科学上网。
import ensaio
fname = ensaio.fetch_earth_gravity(version=1)
ensaio.locate()
其中,【locate】可查看缓存文件夹。
下面绘制一下地球的重力场数据。
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import ensaio
import xarray as xr# 下载并加载全球重力场数据
fname = ensaio.fetch_earth_gravity(version=1)
data = xr.load_dataset(fname)# 提取重力数据
gravity = data["gravity"]/1e5# 创建绘图
ax = plt.subplot(111, projection=ccrs.Robinson())
ax.set_global() # 设置为全球范围# 绘制重力数据
img = ax.contourf(gravity.longitude,gravity.latitude,gravity,transform=ccrs.PlateCarree(),cmap="jet",levels=100,
)# 添加海岸线
ax.coastlines(resolution="110m", color="black", linewidth=0.8)
plt.colorbar(img, pad=0.05, aspect=50)
plt.show()