Python读取GSMap数据的问题

 更新时间:2021年03月10日 10:17:41   作者:凡人不修仙  
这篇文章主要介绍了Python读取GSMap数据的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前言

最近需要处理一些GSMap的遥感影像,GSMaP是全球降水计划(GPM)时代最主要的高分辨率降水产品,下载需要申请,然后通过ftp地址进行下载。下载好以后用ENVI打开,发现没有头文件,自定义头文件之后,影像极其的奇怪,大概是下面这个样子,实在不符合想象,如果有同学知道怎么回事,希望您能告知我,感谢。现在我打算用python先转成tif格式。

微信图片_20210305235437

python库

glob:是一个文件操作相关模块,支持通配符操作,可用于查找符合一定条件的文件,这里用来批量查找".dat"文件
numpy:读取“.dat”文件为array,固定尺寸为[1200, 3600],填补异常值和缺失值为-999.0
arcpy:将numpy的array输出为“.tiff”格式,添加空间参考GCS_WGS_1984,最终保存tif文件

函数说明

glob.glob:用于选择“.dat”格式文件
np.fromfile:读取二进制文件到array
arcpy.NumPyArrayToRaster:将array转化为栅格数据
arcpy.SpatialReference(4326):引用GCS_WGS_1984的空间参考代号
arcpy.DefineProjection_management:建立空间参考

完整代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Name : gsmap2TIFF.py
# Author : zengsk in NanJing
# Created: 2019/8/24 23:26

'''
说明:1.该脚本是读取gsmap小时尺度降水数据,输出为tiff
 2.运行环境需要安装python2 需要arcpy模块
 3.使用arcgis自带的python环境(有arcpy模块)
 4.运行结果可以直接用arcgis打开
'''

# 导入module
import os
import glob
import numpy as np
import arcpy
import warnings

warnings.simplefilter("ignore") # 忽略警告

# 原始降水数据文件夹,可根据自己本地情况修改
sPath = r'./data'
oDir = r"./tiff/"

for fileName in glob.glob(sPath + '\*.dat'):
 print("Processing... {0}".format(fileName))
 ds = np.fromfile(fileName, dtype=np.float32)
 ds = np.resize(ds, [1200, 3600])
 ds[ds < 0] = -999.00
 ds[np.isnan(ds)] = -999.00 # NODATA_value

 # 输出为TIFF(注意:要用到arcpy模块)
 if not os.path.exists(oDir):
  os.makedirs(oDir)
 TiffName = oDir + os.sep + os.path.basename(fileName)[0:-4] + '.tif' # 输出文件名(可根据实际情况改)
 # arcpy.NumPyArrayToRaster()不清楚输入参数可以查看arcpy的官方文档
 # 矩阵转为栅格
 raster = arcpy.NumPyArrayToRaster(ds, arcpy.Point(0, -60.0),
          x_cell_size=0.1, y_cell_size=0.1, value_to_nodata=-999.00)
 # 添加地理坐标系 GCS_WGS_1984
 spatialRef = arcpy.SpatialReference(4326)
 arcpy.DefineProjection_management(raster, spatialRef)
 raster.save(TiffName)

print("\n++++++ Data Processing Successfully Completed ! ++++++")

最终结果

最终得到GSMap的栅格数据,示例结果如下图。

image-20210306000720650

到此这篇关于Python读取GSMap数据的问题的文章就介绍到这了,更多相关Python读取GSMap数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pyinstaller 打包发布经验总结

    Pyinstaller 打包发布经验总结

    这篇文章主要介绍了Pyinstaller 打包发布经验总结,使用Pyinstaller打包Python项目包含了大量的坑,感兴趣的可以一起来了解一下
    2020-06-06
  • Python中函数调用9大方法小结

    Python中函数调用9大方法小结

    在Python中,函数是一种非常重要的编程概念,它们使得代码模块化、可重用,并且能够提高代码的可读性,本文将深入探讨Python函数调用的9种方法,需要的可以参考下
    2024-01-01
  • python如何实现读取并显示图片(不需要图形界面)

    python如何实现读取并显示图片(不需要图形界面)

    这篇文章主要介绍了python如何实现读取并显示图片,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 解决Django中多条件查询的问题

    解决Django中多条件查询的问题

    今天小编就为大家分享一篇解决Django中多条件查询的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 解决python DataFrame 打印结果不换行问题

    解决python DataFrame 打印结果不换行问题

    这篇文章主要介绍了解决python DataFrame 打印结果不换行问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python基于opencv调用摄像头获取个人图片的实现方法

    Python基于opencv调用摄像头获取个人图片的实现方法

    今天小编就为大家分享一篇关于Python基于opencv调用摄像头获取个人图片的实现方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • python自定义函数实现一个数的三次方计算方法

    python自定义函数实现一个数的三次方计算方法

    今天小编就为大家分享一篇python自定义函数实现一个数的三次方计算方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python列表的浅拷贝与深拷贝

    Python列表的浅拷贝与深拷贝

    这篇文章主要介绍了Python列表的浅拷贝与深拷贝,对列表深拷贝就是无论怎样改动新列表,单维or多维,原列表都不变,需要的小伙伴可以参考下面更详细内容
    2022-03-03
  • python 如何使用requests下载文件

    python 如何使用requests下载文件

    这篇文章主要介绍了python 如何使用requests下载文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Centos5.x下升级python到python2.7版本教程

    Centos5.x下升级python到python2.7版本教程

    这篇文章主要介绍了Centos5.x下升级python到python2.7版本教程,本文使用编译安装方式,并配置了一系列需要更改的配置项,需要的朋友可以参考下
    2015-02-02

最新评论