オーストラリアの毎日の降雨値を含む複数のNetCDFファイル(毎年1つ)があります。Pythonの日付値に基づいて複数のNetCDFファイルからラスタを抽出する
現在、私が望む特定の日付を、.csvファイルから読み込み、必要な日付のリストを含むものを抽出することができます。これから、毎日ラスタファイルとして出力します。
しかし、現時点でのスクリプトでは、一度に1年だけこれを行うことができます。私はかなりPythonには新しく、NetCDFファイル(.csvファイルの日付のリストと同様)を変更することで何度もスクリプトを再実行するのではなく、作成するのに役立つことを期待していました。 NetCDFのリストを読むループ。
NetCDF4などのモジュールはすべてのファイルを1つのファイルとして扱うことができると理解していますが、何時間も他の人が行ったことを読んでいても私は賢明ではありません。ここで
は、私がこれまで持っているものです。
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"
のNetCDFファイルはすべてのヘルプをいただければ幸いです
pre.2011.ncしてpre.1900.ncから命名されています!
「dateValueIndex」のフォーマットとは何ですか?そしていくつかの値を掲示する。 – Serenity
現在の質問文から推測すると、引数を扱い、これをハードコードされたリテラル 'pre.2011.nc'の代わりに変数として使用して、一致するnetcdfファイルにアクセスするか、別のループレベル(外側) (1900年、2012年): 'のような形をしていて、ファイルを消化します。未解決の質問:パラメータファイルも一致させる必要がありますか?私はそれに基づいてサンプルを与えるでしょうか? – Dilettant