前言
C# + AE ,ERA5数据(.nc格式)导出至TIFF格式
era5再分析气象数据,nc格式,分辨率:daily,0.25°
命名:yyyymmdd_后缀.tif
代码
private void button40_Click(object sender, EventArgs e)
{
string[] Findfiles;
Findfiles = Directory.GetFiles(@"E:\cai", "*wind.nc");
string name = "";
string outname = "";
int k = 0;
string type = "WIN";
for (int i = 0; i < Findfiles.Count(); i++)
{
string year = System.IO.Path.GetFileName(Findfiles[i]).Substring(0,4);//对应年份
IWorkspaceFactory wsf = new NetCDFWorkspaceFactory();
IWorkspace workspace;
workspace = wsf.OpenFromFile(Findfiles[i], 0);
INetCDFWorkspace nc = (INetCDFWorkspace)workspace;
IStringArray vararr = nc.GetVariables();
IMDRasterDatasetView mdrasview = new NetCDFRasterDatasetNameClass();
mdrasview.Variable = "i10fg"; //sfr-sp; spt-d2m; sra-msdrswrf; tmp-t2m; wind-i10fg
mdrasview.XDimension = "longitude";
mdrasview.YDimension = "latitude";
mdrasview.BandDimension = "time";
IMDWorkspace mdwksp = nc as IMDWorkspace;
IRasterDataset rasterdataset = mdwksp.CreateView("a", (IMDDatasetView)mdrasview) as IRasterDataset;
IRasterBandCollection bands = rasterdataset as IRasterBandCollection;
IRaster raster = rasterdataset.CreateDefaultRaster();
IRasterProps rasterProps = (IRasterProps)raster;
IPnt pBlockSize = new Pnt();
pBlockSize.SetCoords(rasterProps.Width, rasterProps.Height);
IPixelBlock pPi