主页 > 知识库 > Python读取GSMap数据的问题

Python读取GSMap数据的问题

热门标签:语音系统 硅谷的囚徒呼叫中心 客户服务 百度AI接口 企业做大做强 呼叫中心市场需求 Win7旗舰版 电话运营中心

前言

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

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的栅格数据,示例结果如下图。

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

您可能感兴趣的文章:
  • python读取excel数据绘制简单曲线图的完整步骤记录
  • Python matplotlib读取excel数据并用for循环画多个子图subplot操作
  • Python读取Excel数据并生成图表过程解析
  • Python读取JSON数据操作实例解析
  • Python读取实时数据流示例

标签:喀什 山西 海南 长沙 安康 济南 崇左 山西

巨人网络通讯声明:本文标题《Python读取GSMap数据的问题》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266