我有多个NetCDF文件(每年一个),其中包含澳大利亚的每日降雨量值。在
目前,我可以从包含我想要的日期列表的.csv文件中提取我想要的特定日期。然后每天以光栅文件的形式输出。在
然而,我现在的剧本只允许我一年一次做这个。我对python相当陌生,我希望在创建一个循环以读取NetCDF文件(以及.csv文件中的日期列表)来重新运行脚本,而不是通过更改它读取的NetCDF文件(以及.csv文件中的日期列表)来获得一些帮助
我知道像NetCDF4这样的模块可以将所有文件作为一个文件来处理,但是尽管花了很多时间阅读其他人的工作,我还是一点也不明智。在
以下是我目前所掌握的情况:
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.1900.nc到pre.2011.nc
任何帮助将不胜感激!在
如果问题真的是关于python命令行参数的,您可以添加如下内容:
然后使用这个
nc_name
作为arcpy.MakeNetCDFRasterLayer_md
调用中的filepathargument另一种可能性是,如评论中所建议,质疑硬代码另一层,如下所示:
^{pr2}$然后调用
arcpy.MakeNetCDFRasterLayer_md
等相关问题 更多 >
编程相关推荐