中国雪深长时间数据集处理与使用

数据介绍:

该数据集是“中国雪深长时间序列数据集(1978-2012)”的升级版本。

中国雪深长时间序列数据集(1979-2021)采用经纬度投影方式,数据为浮点型。数据集按年份存储,每个年份是一个压缩包,每个压缩包内包含每天的积雪深度文件。每天的雪深用一个txt文件存储,文件的名称为“yyyyddd.txt”,其中yyyy代表年,ddd代表Julian日期,雪深单位为厘米(cm)。比如2005001.txt就代表这个ASCII文件描述2005年第一天我国的积雪覆盖状况。数据集的ASCII码文件是由头文件和主体内容构成,头文件包括行数、列数、x-轴中心点坐标、y-轴中心点坐标、栅格大小、无数据区标值等6行描述信息组成,主体内容就是根据行数列数组成的二维数组,雪深单位为厘米(cm)。因为该数据集中的所有ASCII码文件所描述的空间为我国全国范围,所以这些文件的头文件是不变的,现将头文件摘录如下(其中xllcenter, yllcenter, cellsize单位为度):

ncols 321

nrows 161

xllcenter 60

yllcenter 15

cellsize 0.25

NODATA_value -1

数据来源:中国雪深长时间序列数据集(1979-2021)- 时空三极环境大数据平台

作者:车涛 博士

数据下载:使用推荐的Filezilla下载器,输入以下信息

Ftp server: 210.72.14.198

Ftp username: download_635854

Ftp password: 05661975

使用FTP下载完之后,解压缩,发现为逐日的txt文件。

在介绍中得知,数据格式为ASCII文件,且缺少头文件信息,遂在python3环境下,添加头文件信息,代码如下:

import os
txt = os.listdir("F:/txttest/") # 下载文件解压后存放目录
for txtname in txt:
    with open("F:/txttest/"+txtname, 'r+',encoding='utf-8') as f:
         content = f.read()
         f.seek(0, 0)
         f.write('NCOLS 321\n')
         f.write('NROWS 161\n')
         f.write('XLLCENTER 60\n')
         f.write('YLLCENTER 15\n')
         f.write('CELLSIZE 0.25\n')
         f.write('NODATA_VALUE -1\n' + content)
print("All header files have been added")

添加头文件完成后,调用arcpy中ASCII转栅格组件,转为栅格形式,代码如下:

# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import arcpy
arcpy.env.workspace = "F:/txttest/" #文件路径
all_txt = arcpy.ListFiles("*.txt")
outpath = "F:/snowdepth/"  #输出路径
for txtname in all_txt:
    inASCII = "F:/txttest/" + txtname
    h = txtname.split(".")[0]
    outRaster = outpath + h + ".tif"
    arcpy.ASCIIToRaster_conversion(inASCII, outRaster, "FLOAT")
    print txtname

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值