Ich habe mehrere NetCDF-Dateien (eine für jedes Jahr), die tägliche Niederschlagswerte für Australien enthalten.Extrahieren von Rastern aus mehreren NetCDF-Dateien basierend auf Datumswerten in Python
Momentan kann ich die gewünschten Tage extrahieren, indem ich aus einer .csv-Datei lese, die die Liste der gewünschten Daten enthält. Von diesem gibt es dann jeden Tag als Rasterdatei aus.
Das Skript, das ich im Moment habe, erlaubt mir jedoch nur ein Jahr nach dem anderen. Ich bin ziemlich neu in Python und anstatt das Skript viele Male neu zu starten, indem ich die NetCDF-Datei änderte, die es einliest (sowie die Liste der Daten in der .csv-Datei), hatte ich gehofft, etwas Hilfe bei der Erstellung eines Schleife, die die Liste der NetCDFs durchlesen wird.
Ich verstehe, dass Module wie NetCDF4 verfügbar sind, um alle Dateien als eine zu behandeln, aber trotz viele Stunden lesen, was andere getan haben, bin ich keiner der Klüger.
Hier ist, was ich bisher:
import os, sys
import arcpy
# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")
arcpy.env.overwriteOutput = True
# Script arguments
netCDF = "G:\\Gridded_rain\\DAILY\\netcdf\\Daily_analysis_V3"
rainfall = "G:\\output_test\\r_"
arcpy.env.workspace = netCDF
# Read Date from csv file
eveDate = open ("G:\\selectdate_TEST1.csv", "r")
headerLine = eveDate.readline()
valueList = headerLine.split(",")
dateValueIndex = valueList.index("Date")
eventList = []
for line in eveDate.readlines():
segmenLine = line.split(",")
variable = "pre"
x_dimension = "lon"
y_dimension = "lat"
band_dimension = ""
#dimensionValues = "r_time 1900025"
valueSelectionMethod = "BY_VALUE"
outFile = "Pre"
# extract dimensionValues from csv file
arcpy.MakeNetCDFRasterLayer_md("pre.2011.nc", variable, x_dimension, y_dimension, outFile, band_dimension, segmenLine[dateValueIndex], valueSelectionMethod)
print "layer done"
#copy and save as raster tif file
arcpy.CopyRaster_management(outFile, rainfall + segmenLine[dateValueIndex] + ".tif" , "", "", "", "NONE", "NONE", "")
print "raster done"
Die NetCDF Dateien von pre.1900.nc durch
Jede Hilfe pre.2011.nc benannt wäre sehr dankbar!
Was ist das Format für 'dateValueIndex'? Und poste einige Werte. – Serenity
Du würdest also, wie ich aus der aktuellen Prosa frage, entweder ein Argument behandeln und dieses als Variable anstelle des hartcodierten Literals 'pre.2011.nc' verwenden, um auf die passende netcdf-Datei zuzugreifen oder eine andere Loop-Ebene einzubetten (äußere) das geht irgendwie wie "für Jahr in Reichweite (1900, 2012)": und verdaut dann die Dateien. Offene Frage: Müssen die Parameterdateien auch übereinstimmen? SHall gebe ich eine Probe darauf basierend? – Dilettant