python - Python中通过散点提取二维网格场的值

标签 python grid gis geospatial netcdf

我有一个二维网格文件,它代表感兴趣地点的土地利用目录。
我还有一些分布在该区域的基于纬度/经度的点。

from netCDF4 import Dataset

## 2-d gridded files
nc_file = "./geo_em.d02.nc"
geo = Dataset(nc_file, 'r')
lu = geo.variables["LU_INDEX"][0,:,:]
lat = geo.variables["XLAT_M"][0,:]  
lon = geo.variables["XLONG_M"][0,:] 

## point files
point = pd.read_csv("./point_data.csv")
plt.pcolormesh(lon,lat,lu)
plt.scatter(point_data.lon,cf_fire_data.lat, color ='r')   

enter image description here

我想提取这些点所属的二维网格场的值,但我发现很难定义一个简单的函数来解决这个问题。

有什么有效的方法可以实现吗?

如有任何建议,我们将不胜感激。

附注

我已经在这里上传了我的文件

1. nc_file
2. point_file

最佳答案

我可以提出这样的解决方案,我只需循环点并根据距点的距离选择数据。

#/usr/bin/env ipython
import numpy as np
from netCDF4 import Dataset
import matplotlib.pylab as plt
import pandas as pd
# --------------------------------------
## 2-d gridded files
nc_file = "./geo_em.d02.nc"
geo = Dataset(nc_file, 'r')
lu = geo.variables["LU_INDEX"][0,:,:]
lat = geo.variables["XLAT_M"][0,:]  
lon = geo.variables["XLONG_M"][0,:] 

## point files
point = pd.read_csv("./point_data.csv")
plt.pcolormesh(lon,lat,lu)
#plt.scatter(point_data.lon,cf_fire_data.lat, color ='r') 
# --------------------------------------------
# get data for points:
dataout=[];
lon_ratio=np.cos(np.mean(lat)*np.pi/180.0)
for ii in range(len(point)):
    plon,plat = point.lon[ii],point.lat[ii]
    distmat=np.sqrt(1./lon_ratio*(lon-plon)**2+(lat-plat)**2)
    kk=np.where(distmat==np.min(distmat));
    dataout.append([float(lon[kk]),float(lat[kk]),float(lu[kk])]);
# ---------------------------------------------

关于python - Python中通过散点提取二维网格场的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52735593/

相关文章:

python - pickle .load : ImportError: No module named k_means_

c# - 如何为所有网格行设置最小高度?

javascript - 如何在网格中随机播放图像

sql - 如何查找geom数据类型中不同表中两列之间的距离

postgresql - ogr2ogr 和 Postgis/PostgreSQL 数据库的编码问题

Python tkinter 将 Canvas 保存为 postscript 并添加到 pdf

Python Plotly Sankey 图未显示

python - 在 Python 中使用资源的优雅方式?

responsive-design - MaterializeCSS 如何使行列高度相同?

grails - Grails GIS应用