python投影Himawari-8数据

IDL是可以构建GLT对影像进行校正的,在python里面应该是用gdal.warp()实现的,据传可以编写VRT文件写入经纬度文件的路径就可以实现和GLT校正同样的功能,可惜我太菜了不会搞,就弄个笨办法来用了。
输入文件为HSD数据提取的影像或者NC文件中得到的影像数据,具体长这样:
在这里插入图片描述

import gdal
inputfile='*\\HS_H08_20190916_0300_FLDK_B3_R20.dat'
outtif='*********.tif'
memDs = gdal.Open(inputfile)
cols = memDs.RasterXSize
rows = memDs.RasterYSize
if rows == 11000 and cols == 11000:
    res = 0.01
else:
    res = 0.02
# 几何校正
# 定义空间参考
srs = osr.SpatialReference()
# 定义地球长半轴a=6378137.0m,地球短半轴b=6356752.3m,卫星星下点所在经度140.7,目标空间参考
srs.ImportFromProj4('+proj=geos +h=35785863 +a=6378137.0 +b=6356752.3 +lon_0=140.7 +no_defs')
memDs.SetProjection(srs.ExportToWkt())
memDs.SetGeoTransform([-cols*res*50000, int(res*100000), 0, cols*res*50000, 0, int(-res*100000)])
dstFilePath = os.path.join(outfolder,'H8_'+str(cols)+'.tif')
if os.path.exists(outtif):
	 os.remove(outtif)
warpDs = gdal.Warp(outtif, memDs, dstSRS='EPSG:4326', outputBounds=(60.0, -90.0, 222.0, 90.0), xRes=res, yRes=res)
del warpDs

(60.0, -90.0, 222.0, 90.0)的范围是利用IDL计算影像像元坐标时算出来的经纬度范围估算的外边界范围,用起来误差还是不太大的。校正完影像长这样(跟矢量很贴合了):
在这里插入图片描述
放大看这里:
在这里插入图片描述
在这里插入图片描述
tips:
srs.ImportFromProj4(’+proj=geos +h=35785863 +a=6378137.0 +b=6356752.3 +lon_0=140.7 +no_defs’)
代码中的数据换成FY4A的就可以对FY4A影像进行投影的,亲测可用。
outputBounds=(60.0, -90.0, 222.0, 90.0)替换为outputBounds=(80.0, -60.0, 200.0, 60.0),生成的影像即为NC文件对应的经纬度范围内的影像(省去裁剪了),不过NC影像大小为6001X6001,使用gdal.Warp生成的为6000X6000,问题不大,6000X6000的影像如下:
在这里插入图片描述

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
Python和Java都可以用来预处理Himawari-8数据。以下是关于如何使用这两种编程语言预处理Himawari-8数据的一些简单指导。 Python: 1. 导入所需的库,比如NumPy和Pandas,用于数据处理和分析。 2. 读取Himawari-8数据文件,可以使用Pandas的read_csv方法读取CSV文件或使用NumPy的loadtxt方法读取文本文件。 3. 对读取到的数据进行清洗和处理。根据具体需求,可以使用Python提供的各种数据处理方法,如删除无效数据、填充缺失值等。 4. 对数据进行转换和转换。Python提供了许多数据转换和转换的库和方法,可以根据需求选择适当的方法,如Pandas的apply方法或NumPy的vectorize方法。 5. 可选地进行数据可视化。使用Matplotlib等库,可以将处理过的数据可视化,以便更好地理解和分析数据。 Java: 1. 导入所需的库和类,比如Java IO和Java CSV库,用于处理文件和CSV数据。 2. 使用Java IO库中的方法,读取Himawari-8数据文件。可以使用BufferedReader和FileReader类来读取文本文件,或使用CSVReader类来读取CSV文件。 3. 对读取到的数据进行清洗和处理。可以使用Java提供的方法和功能进行数据清洗,如删除无效数据、填充缺失值等。 4. 对数据进行转换。使用Java提供的方法,可以对数据进行转换和转换,如类型转换、字符串处理等。 5. 可选地进行数据可视化。使用Java提供的图形化库,如JFreeChart,可以对处理后的数据进行可视化,以便更好地理解和分析数据。 总之,Python和Java都是强大的编程语言,能够进行Himawari-8数据的预处理。具体的方法和步骤会根据你的具体需求而有所不同,但上述指导应该能够帮助你开始使用这两种语言进行预处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值