网络通用数据格式NetCDF

JAVA如何通过netcdf包来读取NC文件(多维大数据读取) 如何使用netcdf包来读取NC文件1.首先,你需要下载netcdf的jar包.这里给出官网地址,选择合适的下载. 官网地址: https://www.unidata.ucar.edu/software/thredds/current/netcdf-java/documentation.htm2.下载好jar包之后,导入eclipse之中 3.开始读取.nc文件要读取NC文件,首先你需要了解它 阅读详情

基本含义

NetCDF

        网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式方便地管理和操作 NetCDF 数据集。

        对程序员来说,它和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。netcdf文件开始的目的是用于存储气象科学中的数据,已经成为许多数据采集软件的生成文件的格式。

        从数学上来说,netcdf存储的数据就是一个多自变量的单值函数。用公式来说就是f(x,y,z,...)=value,函数的自变量x,y,z等在netcdf中叫做维(dimension)或坐标轴(axis),函数值value在netcdf中叫做变量(Variables).而自变量和函数值在物理学上的一些性质,比如计量单位(量纲)、物理学名称等等在netcdf中就叫属性(Attributes)。

  • 自变量x,y,z : dimension

  • 函数值value : Variables

  • 计量单位(量纲)、物理学名称 : Attributes

  • Data : 数据

变量(Variables)

        netcdf中的变量就是一个N维数组,数组的维数就是实际问题中的自变量个数,数组的值就是观测得到的物理值。

变量(数组值)在netcdf中的存储类型有六种:

  • ascii字符(char),

  • 字节(byte),

  • 短整型(short),

  • 整型(int),

  • 浮点(float),

  • 双精度(double)。

维(dimension)

        一个维对应着函数中的某个自变量,或者说函数图象中的一个坐标轴,在线性代数中就是一个N维向量的一个分量(这也是维这个名称的由来)

在netcdf中,维的长度基本都是有限的,最多只能有一个具有无限长度的维。

属性(Attribute)

属性对变量值和维的具体物理含义的注释或者说解释.

编程解析netcdf文件

依赖

<!--netcdf4 依赖-->
 <dependency>
      <groupId>edu.ucar</groupId>
      <artifactId>netcdf4</artifactId>
      <version>4.5.5</version>
 </dependency>

源码

 package com.chenqing.test; //自己创建的包
 ​
 //需要导入依赖
 import com.cqkj.data.pojo.GridDataInfo; //公司的依赖
 import com.cqkj.data.util.MetDataUtil; //公司的依赖
 import ucar.ma2.Array;
 import ucar.ma2.InvalidRangeException;
 import ucar.nc2.Dimension;
 import ucar.nc2.NCdumpW;
 import ucar.nc2.NetcdfFile;
 import ucar.nc2.Variable;
 ​
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
 ​
 public class read {
     public static void main(String[] args) throws IOException, InvalidRangeException {
 ​
         NetcdfFile ncFile = NetcdfFile.open("C:\\Users\\12917\\Desktop\\工作\\nc\\test1.nc"); //获取源文件
 ​
         // List<Dimension> dimensions = ncFile.getDimensions();
         // System.out.println("Dimensions:" + dimensions);
 ​
         // List<Variable> variables = ncFile.getVariables();
         // System.out.println("Variables:" + variables);
         // System.out.println("Variables:" + variables.size());
 ​
         // String detailInfo = ncFile.getDetailInfo();
         // // Object o = variable.read().copyTo1DJavaArray();
         // System.out.println("detailInfo:" + detailInfo);
 ​
         // 获取文件位置
         // String location = ncFile.getLocation();
         // System.out.println("location:" + location);
 ​
         // Variable variable = ncFile.findVariable("CR");
         // Variable variable = ncFile.findVariable("C:\\Users\\12917\\Desktop\\工作\\nc\\test.nc");
         // GridDataInfo gridDataInfo = MetDataUtil.readNC(variable.getNameAndDimensions());

         // 单维NC解析
         GridDataInfo gridDataInfo = MetDataUtil.readNC("C:\\Users\\12917\\Desktop\\工作\\nc\\test1.nc");
         // GridDataInfo gridDataInfo = MetDataUtil.readNC("C:\\Users\\12917\\Desktop\\工作\\nc\\test.nc", "width");
         // System.out.println("gridDataInfo:" + gridDataInfo);
         // System.out.println(gridDataInfo instanceof Object);
         // int l = gridDataInfo.getData().length;
         int j=0;
         double[] abc = gridDataInfo.getData();
         for (double a:abc) {
             if (a == 0.0){
                 j++;
             }else {
                 System.out.println(a);
             }
         }
         System.out.println(j);
 ​
         Double value1 = gridDataInfo.interpolation(110.0, 30.0);
         Double value2 = gridDataInfo.interpolation(130.0, 50.0);
         Double value3 = gridDataInfo.interpolation(150.0, 70.0);
         System.out.println("value1:" + value1);
         System.out.println("value2:" + value2);
         System.out.println("value3:" + value3);
 ​
         // Variable data = ncFile.findVariable("data");
         // Variable cr = ncFile.findVariable("CR");
         // Variable time = ncFile.findVariable("time");
         // Variable lat = ncFile.findVariable("lat");
         // Variable lon = ncFile.findVariable("lon");
         // Variable level = ncFile.findVariable("level");
         //
         // // System.out.println("data:" + data);
         // System.out.println("cr:" + cr);
         // System.out.println("time:" + time);
         // System.out.println("lat:" + lat);
         // System.out.println("lon:" + lon);
         // System.out.println("level:" + level);
 ​
         // System.out.println("cr:" + cr);
         // GridDataInfo 转为PNG图片
         // gridDataInfo.toPngDataInfo().toImage("C:\\\\Users\\\\12917\\\\Desktop\\\\工作\\\\nc\\\\" + (int)(Math.random()*100)+1 + "test.png");
         // System.out.println("图片输出成功");
 ​
         // Object cr = ncFile.findVariable("CR").read().copyTo1DJavaArray();
 ​
 ​
         // List<InfoDataDetail> infoDataDetails = MetDataUtil.read3DData("C:\\\\Users\\\\12917\\\\Desktop\\\\工作\\\\nc\\\\test.nc", "CR");
         // System.out.println("infoDataDetails:" + infoDataDetails);
 ​
         SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHH0000");//设置日期格式
         String data_format = df.format(new Date());
         System.out.println(data_format);
 ​
         // 关闭文件
         ncFile.close();
     }
 }
 ​

缩写

  • lon 经度

  • lat 纬度

  • CR 组合反射率

  • time 时间

  • data 日期

  • level 水平

相关文档

ArrayStructures | netCDF-Java Documentationhttps://docs.unidata.ucar.edu/netcdf-java/current/userguide/arraystructures_ref.html

NetCDF-Java CDM Public API v5.5.3-SNAPSHOThttps://docs.unidata.ucar.edu/netcdf-java/5.5/javadoc/index.html

NetCDF(nc)读写与格式转换介绍 阅读详情

相关推荐

Java生成NetCDF文件

Java生成NetCDF文件

LongJ_Sir的博客 1051

NetCDF 文件的基本组成部分

NetCDF 数据的存储 NetCDF 文件中的数据以数组形式存储。例如:某个位置处随时间变化的温度以一维数组的形式存储。某个区域内在指定时间的温度以二维数组的形式存储。 三维 (3D) 数据(如某个区域内随时间变化的温度)或四维 (4D) 数据(如某个区域内随时间和高度变化的温度)以一系列二维数组的形式存储。 三维数据:某个区域内随时间变化的数据。 四维数据:某个区域内随时间和高度变化的数据。 NetCDF 文件的基本组成部分 .

一起记录GIS学习 2151

Java读取netcdf文件和生成等值线的jar_netcdf_wContour

Java读取netcdf文件和生成等值线所用的jar

NetCDF文件介绍

1.NetCDF 文件介绍 Network Common Data Form (NetCDF),采用二进制格式;可以用来存储一系列的数组; files contain a header and file metadata in the form of name/value attributes; 2.文件存储方式 netCDF文件中的数据以数组的形式存储。存储在数组中的数据需要具有相同的类型。如: (1)一维数组 在一个位置上随时间变化的温度被存储为一维阵列。 (2)二维数组 给定时间内某一区域上的温

qq_32649321的博客 6592

NetCDF简介与格式入门

最近研究大数据,用到了NetCDF文件的解析,于是搜索了网络上的相关资源,记录一下。 一、概述         NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,它是由美国大学大气研究协会的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据描述和编码标准。         NetCDF和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。NetCDF文件开始时目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件生成文件的格式。利用NetCDF可以对网络数据进行高效地存储、管理、获取和分发

CXL协议-第三章 CXL事务层

CXL.io为I/O设备提供了一个非一致的负载/存储接口。图3-1显示了Flex总线分层层次结构中的位置。事务类型、事务分组格式、基于信用的流量控制、虚拟通道管理和事务排序规则遵循PCIe*定义,详情请参考PCIe基础规范的“事务层规范”章节。本章重点介绍了用于CXL.io的著名的PCIe操作模式或特性。

qq_41305217的博客 2771

NetCDF数据介绍及python处理

NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”; 本文简单介绍Jason-2的测高数据,文件格式为.nc格式。用PanoplyWin打开后,可以查看里面的数据文件及相关的数据格式。 左侧为数据记录的不同文件,右侧是对应文件的信息,双击左侧文件可以查看里面的数据格式: 从数学上来说,netcdf存储的数据就是一个多自变量的单值函数。用公...

错位的梦寐的博客 3219

GX WORKS2通过交换机连接PLC的方法

三菱PLC连接方法的分享

weixin_64927621的博客 3620

NetCDF学习

网站学习:netcdf的是官方网站为http://www.unidata.ucar.edu/software/netcdf/。 在本文中,我们主要讨论在windows平台上使用netcdf软件库。我们将要从这个网站上下载如下资源⑴netcdf的源代码,目前的地址为 ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4/netcdf-beta.tar.gz

soloaries的专栏 6133

NLPIR 汉语分词系统 (PyNLPIR) 学习手札

1 关于NLPIR最近在做一些NLP相关的任务,其中一个关键的子任务就是如何对汉语进行分词?关于分词的方式,有很多很多,也是很多学习者的练手任务(比如我们当时的期末作业就有这个)。但是,轮子还是要搬来用,自己写的分词只能说是去了解这个方式(了解某个算法),做出来的都是能看不能用,毕竟模型、算法、语料库等一座座大山等着我们攻克。所以,我找了一些资料,看到一个不错的教程,他用了NLPIR,所以我也跟着使

MebiuW的专栏 2万+

手把手教你用Synopsys AHB VIP搭建验证环境:从SINGLE到WRAP16的完整波形分析与避坑指南

本文详细介绍了如何使用Synopsys AHB VIP搭建验证环境,从基础配置到复杂波形调试实战。重点解析了AHB协议中各种Burst类型的地址计算机制,包括INCR和WRAP类型,并提供了实际案例和避坑指南,帮助工程师快速掌握验证技巧。

weixin_42552716的博客 416

netcdf入门

netcdf入门

qq_44945073的博客 466

HarmonyOS ArkTS开发实战:用Axios封装一个通用的网络请求工具类(附完整代码)

本文详细介绍了如何在HarmonyOS ArkTS开发中利用Axios封装一个通用的网络请求工具类,涵盖架构设计、核心模块实现、UI状态联动及高级功能扩展。通过单例控制器、拦截器链配置和Token自动刷新机制,提升网络请求的稳定性和可维护性,适用于各类HarmonyOS应用开发场景。

weixin_30772105的博客 491

NetCDF简介

一、概述 NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,它是由美国大学大气研究协会的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据描述和编码标准。 NetCDF和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。NetCDF文件开始时目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件生成文件的格式。利用NetCDF可以对网络数据进行高效地存储、管理、获取和分发等操作。由于其灵活性,能够传输

118路司机的博客 3117

【漏洞复现】Apache Tomcat远程代码执行漏洞(CVE-2024-56337)

CVE-2024-56337是一个存在于Apache Tomcat中的TOCTOU(Time-of-Check Time-of-Use)竞争条件漏洞。此漏洞源于对先前漏洞(CVE-2024-50379)的不完整修复。若默认servlet是可写的(参数readonly设置值为false,该设置为非默认设置)表示不区分大小写文件系统,在负载下并发读取和上传同一文件可以绕过Tomcat的大小写检查。攻击者可以通过构造恶意请求上传含恶意JSP代码的文件,使其触发解析并执行这些文件,从而导致远程代码执行。

李同學AI安全 3199

【推荐100个unity插件】在unity快速生成3D人物自然姿势和动作,且支持按图像生成姿势—— Pose AI

PoseAI是一款基于肌肉的智能动画创作工具,通过神经网络和逆运动学技术实现自然姿势生成。主要功能包括:自动/手动角色设置、神经控制装备、姿态估计与预览等。工具支持从2D图像生成3D姿势,并能在编辑器中实时预览动画效果。其神经网络架构采用前馈网络与ResNet结合的方式,通过多层全连接和ReLU激活函数处理输入数据。PoseAI简化了动画制作流程,提供高效的姿势创作解决方案,适用于Unity游戏开发。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1367

用NetCDF创建和读取NC文件

参考网站: 1.https://www.unidata.ucar.edu/ 2.http://crawler.iteye.com/blog/1059995 3.https://www.unidata.ucar.edu/software/netcdf/examples/programs/ NetCDF版本:netcdf-4.6.6.jar JDK:1.8 一、NetCDF简介 NetCDF全称为ne...

shener_m的博客 2万+

matlab数学建模练习(2)练习电子科技大学数学实验

【代码】matlab数学建模练习(2)练习电子科技大学数学实验。

c_wrj_的博客 1436

netcdf文件介绍以及IDL读取

1、什么是NetCDF NetCDF全称为Network Common Data Format,中文译为“网络通用数据格式”, 是由美国大气研究大学协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目开发的。它是一种面向数据型数据, 适于网络共享的数据描述和编码标准。其软件实现形式是一个免费的NetCDF软件包,内含

水滴石穿,绳锯木断 3271

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NETCDF文件

概述 NetCDF全称为network Common Data Format,中文译法为“网络通用数据格式”,它是一种面向数组型并适于网络共享的数据描述和编码标准。 NetCDF文件用于存储气象科学中的数据。 NetCDF从公式来说就是f(x,y,z,…)=value。 文件格式 NetCDF文件后缀为.nc,文件中的数据结构包含维(dimensions)、变量(variables)和属性(attributes)三种描述类型,每种类型都会被分配一个名字和一个ID。 一个NetCDF文件的结构包括以下对象:

qq_44955314的博客 847

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python netCDF4

NetCDF 即 network Common Data Form(网络通用数据格式),是一种面向数组型并适于网络共享的数据的描述和编码标准。文件的后缀是。nc 在气象领域应用很广,因为它可以存储不同波段的长时间观测结果。NetCDF 文件中的数据以数组形式存储。例如,某个位置处随时间变化的温度以一维数组的形式存储。某个区域内在指定时间的温度以二维数组的形式存储。来源:【知乎netCDF4 是一个专门处理 nc数据的 python库。

qq_40292148的博客 3657

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

KeyarchOS适配netCDF

配置安装信息:./configure --prefix=$HDF5 CC=gcc FC=gfortran CXX=g++ --enable-fortran --enable-fortran2003 --enable-cxx --with-zlib=$HDF5。配置安装信息./configure --prefix=$NETCDF CC=gcc FC=gfortran F77=gfortran CXX=g++ CPPFLAGS="-I$NETCDF/include" LIBS="-L$NETCDF/lib"

Zhuzhustu的博客 182
下一篇: 气象要素的基本属性和展现形式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值