由于最近用到的很多产品都是EASE-GIRD投影,转tif废了很大的功夫,写个文章来记录一下。
一、产品
AMSR2 产品、GlobSnow 产品、FY-3B等
二、EASE-GRID投影
关于这个投影的官方具体介绍可以看这里!
gEASE Grids Map Projection & Grid Definitions | National Snow and Ice Data Center (nsidc.org)
三、转Tiff
先看代码【python】
cols = 721
rows = 721
# 设置影像的显示范围
geo = (-9036842.76, 25067.53, 0, 9036842.76, 0, -25067.53)
# 构造projection
src_srs = osr.SpatialReference()
src_srs.ImportFromEPSG(3408) # 定义输出的坐标系为NSIDC_EASE_Grid_North"AUTHORITY["EPSG","3408"]
src_srs_wkt = src_srs.ExportToWkt() # 给新建图层赋予投影信息
#需要写入TIFF的数据
dayarray = fp['SWE_NorthernDaily_D'][:]
#输出文件名
out_file =os.path.join(output_dir, hdf_file[42:-18] + "fy.tif")
ap.env.overwriteOutput = 1 # 输出文件夹里面已经有内容的,就覆盖掉
ap.CheckOutExtension("Spatial")
#转tif
write_tiff(out_file, geo, src_srs_wkt, rows, cols, dayarray)
由上段代码可知,要想转Tiff,需要行列号、geo(地理范围)、投影、数据这些信息。
(1)以GlobSnow为例
先用matlab查看数据信息
得到行列号、地理范围、投影信息
之后就可以输入代码转tiff啦
(2)如果用Matlab查看数据信息,没有地理范围,也没有写确定的投影坐标,那么,可以查看投影官方信息,根据行列号和分辨率大小确定投影和地理范围,具体如下:
例如确定分辨率为25km,根据行列号721×721,可以确定投影为NSIDC_EASE_Grid_North["EPSG","3408"],还有地理范围。
就可以输入代码转Tiff啦!
注意:这里只能是半球产品才能参考该网站所给的地理范围,如果是某个小于半球尺度的区域,需要想其他办法确定地理范围。
参考文献:
https://blog.csdn.net/weixin_38953602/article/details/101158084