当前位置: 首页 > news >正文

27、美国国家冰雪中心(NSIDC)海冰密集度月数据下载与处理

文章目录

  • 一、前言
  • 二、数据下载
  • 三、使用Ponply查看数据结构
  • 四、代码

一、前言

处理美国国家冰雪中心(NSIDC)的海冰密集度月度数据时,坐标转换是一个重要的步骤。NSIDC提供的数据通常采用极地球面坐标系,需要将其转换为常用的地理坐标系(如经纬度)以便进行分析和可视化。

坐标转换的关键是理解数据的原始投影信息,包括投影类型、中心经度、真实纬度、地球椭球体参数等。这些信息可以从数据的元数据中获取。

利用Python的Cartopy库,我们可以方便地进行坐标转换。首先,根据元数据创建原始数据的投影对象(如极地球面投影)和目标投影对象(如等经纬度投影)。然后,使用Cartopy的transform_points函数将原始数据的x、y坐标转换为目标投影下的经纬度坐标。

转换后的经纬度坐标可能不规则,为了方便插值和绘图,我们可以创建一个规则的经纬度网格。使用xarray的interp函数将数据插值到这个规则网格上,得到插值后的海冰密集度数据。

通过坐标转换,我们可以将NSIDC的海冰密集度数据与其他地理数据进行叠加分析,并生成易于理解的可视化结果,为研究全球海冰变化提供更多见解。

二、数据下载

数据集名称: NOAA/NSIDC Climate Data Record of Passive Microwave Sea Ice Concentration, Version 4

变量名: 海冰密集度 (Sea Ice Concentration)

时间分辨率:

网址: https://nsidc.org/data/g02202/versions/4

  • 数据集介绍页面
    在这里插入图片描述
  • 选择下载南极还是北极

在这里插入图片描述

  • 选择下载的数据尺度
    在这里插入图片描述

这里提供了南极北极Monthly和Daily分辨率的数据,下载月数据,可以使用DownThemAll工具进行下载,如果需要下载日数据,可以参考文章: https://blog.csdn.net/qq_41857385/article/details/140417294。

三、使用Ponply查看数据结构

首先使用Ponply打开nc文件,查看该nc文件数据结构,然后再利用nc进行读取或处理。
在这里插入图片描述
查看xgrid变量,可以看到其并非规则的经纬度格点,而是m为单位的距离网格,所以此时需要对数据进行插值处理,将其转化成格则的经纬网格,方便数据分析与处理。

在这里插入图片描述
PS:在该nc文件中,2.51,2.52,2.53,2.54,2.55分别具有特殊的意义,表示冰盖等标记,所以在处理的时候需要进行特殊化处理,例如将其转换成缺测值等。

四、代码

下载下来的数据是以距离为单位的格点,而不是经纬度格点,为了后续数据处理方便,需要将其处理成经纬度结构的数据,下面展示如何使用Python对其进行处理。

import numpy as np
import xarray as xr
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
from pyproj import Proj, Transformerimport numpy as npdef set_values_to(array, target_values, new_value=np.nan):"""将数组中指定的值替换为新的值。参数:array (np.ndarray): 输入的数组。target_v

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MFC窗口大小最大化最小化随拖动调整大小
  • Golang | Leetcode Golang题解之第283题移动零
  • 【Go系列】Go的UI框架Fyne
  • SQL Server中非结构化数据的存储神器:文件表的魔力
  • 21 B端产品经理之技术常识(1)
  • Python | Leetcode Python题解之第284题窥视迭代器
  • Alternating Sum
  • web基础,http协议,apache概念及nginx
  • C#小结:string、double、TimeSpan等常见类型的小结和坑点
  • mysql的存储过程:
  • go操作aws s3
  • RemakePython
  • 24年第三届钉钉杯大学生大数据挑战赛
  • PySide(PyQt)使用QPropertyAnimation制作动态界面
  • html实现酷炫美观的可视化大屏(十种风格示例,附源码)
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • canvas 绘制双线技巧
  • docker python 配置
  • httpie使用详解
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript 奇技淫巧
  • JDK 6和JDK 7中的substring()方法
  • JS笔记四:作用域、变量(函数)提升
  • MobX
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Spring Cloud Feign的两种使用姿势
  • Webpack入门之遇到的那些坑,系列示例Demo
  • windows下mongoDB的环境配置
  • windows下使用nginx调试简介
  • 分布式任务队列Celery
  • 构造函数(constructor)与原型链(prototype)关系
  • 关于字符编码你应该知道的事情
  • 扑朔迷离的属性和特性【彻底弄清】
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 突破自己的技术思维
  • 小李飞刀:SQL题目刷起来!
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​虚拟化系列介绍(十)
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # Redis 入门到精通(七)-- redis 删除策略
  • # 数仓建模:如何构建主题宽表模型?
  • #、%和$符号在OGNL表达式中经常出现
  • #HarmonyOS:基础语法
  • #ifdef 的技巧用法
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二十四)Flask之flask-session组件
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (图)IntelliTrace Tools 跟踪云端程序
  • (转)shell调试方法
  • (转载)OpenStack Hacker养成指南
  • .net 4.0发布后不能正常显示图片问题
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core 发展历程和版本迭代