netCDF 파일에서 다른 소스의 지오메트리와 일부 기하 연산을 수행해야합니다. 따라서 다른 소스의 도형 (shapely.geometry.Polygon
)을 geopandas.GeoDataFrame
에 저장합니다.NetCDF 데이터를 GeoDataFrame에 저장하십시오.
다음은 netCDF
파일을 GeoDataFrame
으로 읽는 것입니다. 조리법은 분명합니다 : xarray
으로 netCDF
을 읽고 pandas.DataFrame
에 저장하고 추출 된 위도/경도 데이터에 shapely.geometry.Point
연산을 수행하고 GeoDataFrame
으로 변환합니다.
이후에는 지오메트리 연산자를 사용하여 통계를 작성하겠습니다.
내가 xarray
(see here)와 netCDF
파일
import xarray as xr
dnc = xr.open_dataset(ff)
df = dnc.to_dataframe()
을 읽을 때 나는 012에서
>>>> dnc
<xarray.Dataset>
Dimensions: (lat: 16801, lon: 19201)
Coordinates:
* lat (lat) float32 -32.0 -31.9992 -31.9983 -31.9975 -31.9967 ...
* lon (lon) float32 -73.0 -72.9992 -72.9983 -72.9975 -72.9967 ...
Data variables:
hgt (lat, lon) int16 0 0 0 4 0 5 0 9 9 8 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
>>> dnc.hgt.size
322596001
>>> dnc.lat.size
16801
>>> dnc.lon.size
19201
및
>>> df.head()
hgt
lat lon
-32.0 -73.000000 0
-72.999168 0
-72.998337 0
-72.997498 4
-72.996666 0
를 얻을 수lat
및 lon
에 액세스 할 수 없습니다. 부분적으로 빈 열 lat
을 이해하는 데 문제가 있습니다. 그래서 shapely.geometry.Point((lon, lat))
은 lon
과 lat
의 모든 조합에 대해 dnc
에서 수행되어야한다고 생각합니다. 그게 맞습니까? 어떤 아이디어를 코드하는 방법?
'df'의 색인은'Pandas.MultiIndex'입니다. 이 작업을 수행하는 방법은 여러 가지가 있습니다.'df.reset_index()'를 사용해보십시오. – jhamman