2017-06-07 8 views
0

In Python 3.6 habe ich eine netCDF4-Datei mit globalen Niederschlagswerten importiert. Ich habe auch eine Formdatei importiert, die die Form für das Colorado River-Becken enthält. Mein Ziel ist es, Niederschlagsdaten nur innerhalb meiner Shapefile lesen/extrahieren zu können. Ich habe mehrere Beispiele nachgeschlagen, aber keine hat wirklich geholfen.Extrahieren Sie netCDF4 Daten aus einem Shapefile?

Hier ist mein Code so weit:

from netCDF4 import Dataset 
import numpy as np 
import geopandas as gpd 

nc = Dataset('filename.nc') 
long = nc.variables['lon'][:] 
lati = nc.variables['lat'][:] 
rainfall = nc.variables['precip'][:] 

shapefile=gpd.read_file('filename.shp') 

Es gibt keine Fehlermeldungen auf dem obigen Code.

+0

Von dem, was ich sammle, versuchst du, Daten von deinem NC-Datensatz zu analysieren, der sich innerhalb des Colorado-Beckens befindet (wie von deiner Shape-Datei definiert). Ist das korrekt? –

Antwort

1

Oh, schau, Hydrologe im Haus! ;)

Nun, bis jetzt haben Sie noch nicht viel mit Ihrem Code gemacht, alles, was Sie getan haben, war Dateien in den Speicher zu lesen.

Als ich versuchte, die gleiche Analyse (nur mit GRIB-Dateien) durchzuführen, fand ich eine große Python-Bibliothek für genau diesen Zweck, genannt RasterStats.

Es unterstützt die Arbeit mit NDarray-Raster-Objekten sowie die meisten von GDAL unterstützten Raster-Dateitypen (muss auch netCDF sein!), Und es erzeugt genau das, was Sie wollen.

Für mehr, sehen Sie eine sehr saubere manual und lassen Sie mich wissen, wenn Sie irgendwo stecken bleiben!