码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 联合matlab和Arcgis进行netcdf格式的雪覆盖数据的重新投影栅格


    图片摘要

    本专栏目的是将netcdf格式的雪覆盖数据进行重新投影,需要使用的工具包括matlab和Arcgis,下面进入正题。

    1.数据的下载与读取---matlab

    最近我需要读取北半球的冰雪覆盖数据,下载的是MODIS/Terra Snow Cover Monthly L3 Global 0.05Deg CMG, Version 61,文件格式为netcdf,在matlab中读取发现其为polar_stereographic极坐标投影。

    matlab读取程序

    1. file = 'D:\文件\研究内容\Kakhovskoye\RAW_data\EUROPE_SNOW\ims2021281_4km_v1.3.nc';
    2. ncdisp(file)
    3. lon = ncread(file,'x');lat = ncread(file,'y');snow = ncread(file,'IMS_Surface_Values');
    4. O.rg = snow';
    5. imshow(O.rg),caxis([0,4])

    绘图显示与官网提供的数据与投影方式一致。但是在matlab中读取netcdf文件的经纬度坐标没有办法进行后续的处理与计算,因此需要进行重新投影转换。

    2.数据的投影栅格---arcgis

    下面我们将NetCDF文件导入arcgis中,使用arcgis工具箱中的“多维工具”下的“创建NetCDF栅格图层”导入,得到以下的结果:

    接下来选择【数据管理工具】->【投影和变换】下的【栅格】->【投影栅格】,选择输出坐标系为GCS_WGS_1984,点击确定,注意需要将结果导出后新建空白地图,再把文件重新导入arcgis中,即可得到正确的投影,此时再把这个文件导出成NetCDF文件。选择【多维工具】下的【栅格转NetCDF】。

    再在matlab中读取即可得到正确的结果。

    程序代码:

    1. %% oringal
    2. file = 'D:\文件\研究内容\Kakhovskoye\RAW_data\EUROPE_SNOW\ims2021281_4km_v1.3.nc';
    3. ncdisp(file)
    4. lon = ncread(file,'x');lat = ncread(file,'y');snow = ncread(file,'IMS_Surface_Values');
    5. O.rg = snow';subplot(1,2,1)
    6. imshow(O.rg),caxis([0,4])
    7. %% reproject
    8. file = 'D:\文件\研究内容\Kakhovskoye\RAW_data\EUROPE_SNOW\sd.nc';
    9. ncdisp(file)
    10. lon = ncread(file,'lon');lat = ncread(file,'lat');snow = ncread(file,'IMS_Surface_Values_Layer_Pro1.tif');
    11. [lon,lat] = meshgrid(lon,lat);
    12. O.lon = lon;O.lat = lat;O.rg = snow';
    13. subplot(1,2,2),rg_plot(O)
    14. caxis([0,4])

    得到最终的结果:

    后续有新的方法将更新!欢迎交流学习!

  • 相关阅读:
    44.ES
    java毕业设计全套基于SSM+Vue的SSM学业预警平台信息管理|学生课程成绩管理系统作业[包运行成功]
    Win11+VS2022配置编译VTK9.1
    SIMULIA-Simpack 2022x新功能介绍
    nodejs+vue+elementui零食食品o2o商城系统
    项目实战:抽取中央控制器 DispatcherServlet
    嵌入式养成计划-32-网络编程----域套接字模型------抓包工具--wireshark
    两个请求,其中一个请求依赖另一个请求数据
    花了整整一天,总结了C语言所有常用的文件操作
    基于QT实现的银行储蓄管理系统
  • 原文地址:https://blog.csdn.net/weixin_43047707/article/details/132908635
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号