Python | 使用Gdal投影转换tiff转换nc

文摘   2024-10-01 23:57   湖南  

写在前面

最近狂敲了5天代码,差点废了。好消息是遇到了新的数据,伴随产生新的问题,可以顺便记录下来发个教材。这里需要处理Geotiff图像数据,图像中每个像素的大小为1千米×1千米。

说实话,很久以前用arcgis处理过这种数据,很方便,但是太久远了。装的arcgis都打不开了。而且长期处于nc格式的舒适区,还是挺头疼新的数据格式。

为了更方便的处理,这里还是考虑将其处理为nc格式。

遇到的问题

原本我是直接通过python中的gdal库进行转换的,以下是一个简单的转换脚本,通过获取文件下的所有tiff文件,批量转换为nc输出:

def transnc_pop():
    
    input_file = r"K:/BaiduNetdiskDownload/population/pop_output/"
    
    for year in range(1990,2016):
        # print(year)
        
        fn = input_file + 'pop'+'%04.0f'%year+'/'
        
        files = glob.glob(fn+"*.tif")
        files.sort()
        for file in files:
            print(year,file)
            tiff_name = os.path.basename(file).split('.')[0
            
            nc_name   = tiff_name + '.nc'
            
            output_file = os.path.join("K:/BaiduNetdiskDownload/pop1990-2015",
                                        nc_name)
            
            gdal.Translate(output_file,file,format='netCDF')
        

但是,在后期绘图时发现存在问题,如下所示,数据与ccrs.PlateCarree()投影匹配不上,导致绘制空间分布图时出现错位

后来分析感觉应该是投影不一致的问题导致的,原始tif文件中没有常见的经纬度lon-lat信息而x-y以m的单位显示,其文件中显示的投影方式为ccrs.AlbersEqualArea()

解决方法

后续在谷歌搜索中,找到了可能原因,绘图使用的投影坐标ccrs.PlateCarree()应该对应于WGS 84

我这里在Linux系统下使用gdalwrap命令,直接进行转换:

gdalwarp infile.tif outfile.nc -t_srs "+proj=longlat +ellps=WGS84"

或者可以在windows环境下使用,具体没有测试

import os  
os.sys('gdalwarp infile.tif outfile.nc -t_srs "+proj=longlat +ellps=WGS84"')

gdal

如果你是在Linux系统下,只要保证成功安装上了gdal库,在命令行,输入gdal,然后点击tab键,即可发现先输出gdal相关的命令

绘制空间分布图

处理后的数据可以正常的绘制空间分布图,简单绘制一下如下所示;

数据与代码

相关数据与代码放到了GitHub上:

  • https://github.com/Blissful-Jasper/jianpu_record

总结

总的来说,最终还是解决了问题。但是,发现了自身对于不同投影数据以及其他格式数据处理不熟练的不足。后续还是多找找不同格式的数据练习一下。

https://gis.stackexchange.com/questions/6669/converting-projected-geotiff-to-wgs84-with-gdal-and-python


加微信交流群,请备注:姓名-行业-单位)



声明:本公众号分享的资源均来自于互联网的公开资源,仅供个人学习和研究使用,不代表本人对其版权、真实性、合法性、准确性等方面做出任何保证。任何使用本号分享的资源的个人或组织,需自行承担相应的法律责任和后果;本号不承担任何法律责任和连带责任。使用本号分享的资源即代表您已完全了解并同意本免责声明的所有内容。






上海位温信息科技有限公司

专业的商业气象服务商



(咨询数据详情,可添加微信,请备注:合规数据



可提供气象产品 

  • 全国三千多个基准站

3213 个主要城市站点、每小时发 布 1 次,

每天发布 24 次,每次提供当前整点时刻的

城市站点实况天气(实况产品会在整点后

15 分钟、20 分钟、30 分钟进行数据更新),

要素包括:天气现象、气温、体感温度、风速、

风力、风向、相对湿度、气压、1小时降水量、

10分钟降水量、能见度、日出时间、日落时间、

紫外辐射等要素。

  • 探空气象站

  • 海洋气象站

  • 雷达拼图

  • 卫星云图(风云4、葵花8)

  • 格点实况、再分析资料

  • 数值预报:CMA EC GFS

  • 强对流天气预报

  • 强天气落区预报

    强对流天气(短时强降水/冰雹/雷暴大风)概率预报图

  • 台风、热带气旋

可提供国内与国外各类气象咨询气象服务

本公司提供服务稳定可靠,您值得拥有。




EarthAi
AI4Earth、人工智能、气象数值预报、学术论文!产业资讯等等……
 最新文章