- 浏览: 167666 次
- 性别:
- 来自: 重庆
文章分类
最新评论
-
lilixu:
Netcdf (二) -
publicorprivate:
[b]atwr s [/b]
xml和实体对象相互转换 一步到位 -
mangolms:
讲得很好,顶一个
Java 线程入门 -
crawler:
lvwenwen 写道求问楼主自己学习的总结还是有什么相关的材 ...
第二章 面向对象的几个基本原则 -
lvwenwen:
求问楼主自己学习的总结还是有什么相关的材料
第二章 面向对象的几个基本原则
由于工作原因最近看了下Netcdf:
NetCDF 1 NetCDF 1.1概述(Overview) NetCDF (network Common Data Form) is a set of software libraries and machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. Distributions are provided for Java and C/C++/Fortran. See the netCDF web site for more information. NetCDF全称为network Common Data Format( “网络通用数据格式”),是一个软件库与机器无关的数据格式,支持创建,访问基于数组的科研数据。分别提供了对Java和C / C++ / Fortran语言。 对程序员来说,它和zip、jpeg、bmp文件格式类似,都是一种文件格式的标准。netcdf文件开始的目的是用于存储气象科学中的数据,现在已经成为许多数据采集软件的生成文件的格式。 从数学上来说,netcdf存储的数据就是一个多自变量的单值函数。用公式来说就是f(x,y,z,...)=value, 函数的自变量x,y,z等在netcdf中叫做维(dimension)或坐标轴(axix),函数值value在netcdf中叫做变量(Variables)。而自变量和函数值在物理学上的一些性质,比如计量单位(量纲)、物理学名称在netcdf中就叫属性(Attributes)。 1.2 数组理解 NetCDF是以数组为基础来对数据读写操作的,所以需要对数组理解明白,我们接触的二维数组比较容易理解,如果是三维、四维等多维数组的理解: 基础: //静态初始化 int a[][] = {{1,2},{2,3}}; //动态初始化 int c[][] = new int[2][]; int d[][] = new int[2][3]; /*********多维数组声明和初始化是从高维到低维 以下都是语法错误的: *int b[2][] = {{1,2},{2,3}}; *int c[][] = new int[][]; *int c[][] = new int[][4]; *********多维数组可以看成以高维数组作为元素的数组*/ 如:int c[][] = new int[2][]; c[0] = new int[3]; c[1] = new int[3]; 在内存中如下存放: 2 参考网站 http://www.unidata.ucar.edu/ 2.1 Unidata 2.2.1 About Unidata is a diverse community of over 160 institutions vested in the common goal of sharing data, and tools to access and visualize that data. For 20 years Unidata has been providing data, tools, and support to enhance earth-system education and research. In an era of increasing data complexity, accessibility, and multidisciplinary integration, Unidata provides a rich set of services and tools. Unidatay是一个多样化的社区。对通用数据共享,处理工具,数据访问,可视化等处理,近20年来Unidata已提供数据,工具和支持,以加强地球系统教育和研究。在一个日益复杂的数据,交通方便,和多学科融合的时代,Unidata提供的服务和丰富的工具集。 2.2.2 DATA The Unidata Program helps researchers and educators acquire and use earth-related data. Most of the data are provided in "real time" or "near-real time" — that is, the data are sent to participants almost as soon as the observations are made. Unidata is a data facilitator, not a data archive center. We provide a mechanism whereby educators and researchers, by participating in our Internet Data Distribution (IDD) system, may subscribe to streams of current data that interest them. Unidata项目帮助研究人员和教育工作者获得和使用地球相关的数据。大部分数据为实时数据或者临近数据,将数据发送到需要参与的对象。 Unidata是数据处理,而不是数据存储中心。 Available Data Types:(现有数据类型) Forecast Model Output:出型预报 Satellite Data:卫星数据 Radar Data:雷达数据 Lightning Data:闪电数据 Wind Profiler Data:风分析的数据 Aircraft-Borne (ACARS):航空传播数据 GPS Meteo. (SuomiNet):GPS数据 ………… 3 NetCDF文件结构 3.1 变量(Variables) 变量对应着真实的物理数据。比如我们家里的电表,每个时刻显示的读数表示用户的到该时刻的耗电量。这个读数值就可以用netcdf里的变量来表示。它是一个以时间为自变量(或者说自变量个数为一维)的单值函数。再比如在气象学中要作出一个气压图,就是“东经xx度,北纬yy度的点的大气压值为多少帕”,这是一个二维单值函数,两维分别是经度和纬度。函数值为大气压。 从上面的例子可以看出,netcdf中的变量就是一个N维数组,数组的维数就是实际问题中的自变量个数,数组的值就是观测得到的物理值。变量(数组值)在netcdf中的存储类型有六种,ascii字符(char) ,字节(byte), 短整型(short), 整型(int), 浮点(float), 双精度(double)。 3.2 维(dimension) 一个维对应着函数中的某个自变量,或者说函数图象中的一个坐标轴,在线性代数中就是一个N维向量的一个分量(这也是维这个名称的由来)。在netcdf中,一个维具有一个名字和范围(或者说长度,也就是数学上所说的定义域,可以是离散的点集合或者连续的区间)。在netcdf中,维的长度基本都是有限的,最多只能有一个具有无限长度的维。 3.3 属性(Attribute) 属性对变量值和维的具体物理含义的注释或者说解释。因为变量和维在netcdf中都只是无量纲的数字,要想让人们明白这些数字的具体含义,就得靠属性这个对象了。在netcdf中,属性由一个属性名和一个属性值(一般为字符串)组成。比如,在某个cdl文件(cdl文件的具体格式在下一节中讲述)中有这样的代码段: temperature:units = "celsius" ; 前面的temperature是一个已经定义好的变量(Variable),即温度,冒号后面的units就是属性名,表示物理单位,=后面的就是units这个属性的值,为“celsius” ,即摄氏度,整个一行代码的意思就是温度这个物理量的单位为celsius。 3.4 表现形式(Representations) Representations of netCDF CF(Climate and Forecast) Dimension and Variable Information: CDL text, ncML, ncML with coordinate system extensions, and ncML-GML 3.4.1 CDL 网址:http://mailman.unidata.ucar.edu/software/netcdf/docs/netcdf/CDL-Syntax.html#CDL-Syntax netcdf example_1plus { // CDL with CF addions dimensions: // dimension names and lengths are declared first lat = 5, lon = 10, level = 4, time = unlimited; variables: // variable types, names, shapes, attributes short time(time); time:standard_name = "time"; time:units = "hours since 1996-1-1"; int lat(lat), lon(lon), level(level); lat:units = "degrees_north"; lat:standard_name = "latitude"; lon:units = "degrees_east"; lon:long_name = "longitude"; level:standard_name = "air_pressure"; level:units = "millibars"; float temp(time,level,lat,lon); temp:long_name = "temperature"; temp:standard_name = "air_temperature"; temp:units = "celsius"; float rh(time,lat,lon); rh:long_name = "relative humidity"; rh:valid_range = 0.0, 1.0; // min and max // global attributes :source = "Fictional Model Output"; :Conventions = "CF-1.0"; data: // optional data assignments level = 1000, 850, 700, 500; lat = 20, 30, 40, 50, 60; lon = -160,-140,-118,-96,-84,-52,-45,-35,-25,-15; time = 12; rh =.5,.2,.4,.2,.3,.2,.4,.5,.6,.7, .1,.3,.1,.1,.1,.1,.5,.7,.8,.8, .1,.2,.2,.2,.2,.5,.7,.8,.9,.9, .1,.2,.3,.3,.3,.3,.7,.8,.9,.9, 0,.1,.2,.4,.4,.4,.4,.7,.9,.9; } 如上:0.5表示time为12,lon为-160,lat为20的三维数据 0.2表示time为12,lon为-140,lat为20的三维数据 0 time为12,表示lon为-160,lat为60的三维数据 …………………. 3.4.2 NCML 参考网址:http://www.unidata.ucar.edu/software/netcdf/ncml/v2.2/Tutorial.html <?xml version="1.0" encoding="UTF-8"?> <netcdf xmlns="http://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2" location="T:/GALEON/SimpleSamples/SampleNetCDFbens.nc"> <dimension name="lat" length="5" /> <dimension name="lon" length="10" /> <dimension name="level" length="4" /> <dimension name="time" length="1" isUnlimited="true" /> <attribute name="source" type="String" value="Fictional Model Output" /> <attribute name="Conventions" type="String" value="CF-1.0" /> <variable name="time" shape="time" type="short"> <attribute name="standard_name" type="String" value="time" /> <attribute name="units" type="String" value="hours since 1996-1-1" /> </variable> <variable name="lat" shape="lat" type="int"> <attribute name="units" type="String" value="degrees_north" /> <attribute name="standard_name" type="String" value="latitude" /> </variable> <variable name="lon" shape="lon" type="int"> <attribute name="units" type="String" value="degrees_east" /> <attribute name="long_name" type="String" value="longitude" /> </variable> <variable name="level" shape="level" type="int"> <attribute name="standard_name" type="String" value="air_pressure" /> <attribute name="units" type="String" value="millibars" /> </variable> <variable name="temp" shape="time level lat lon" type="float"> <attribute name="long_name" type="String" value="temperature" /> <attribute name="standard_name" type="String" value="air_temperature" /> <attribute name="units" type="String" value="celsius" /> </variable> <variable name="rh" shape="time lat lon" type="float"> <attribute name="long_name" type="String" value="relative humidity" /> <attribute name="valid_range" type="double" value="0.0 1.0" /> </variable> </netcdf> 3.4.3 NCML-CS 参考网址:http://www.unidata.ucar.edu/projects/THREDDS/GALEON/NetCDFandStandards.htm <?xml version="1.0" encoding="UTF-8"?> <netcdf xmlns="http://www.ucar.edu/schemas/netcdf" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ucar.edu/schemas/netcdf http://www.unidata.ucar.edu/schemas/netcdf-cs.xsd" uri="T:/GALEON/SimpleSamples/SampleNetCDFbens.nc"> <dimension name="lat" length="5" /> <dimension name="lon" length="10" /> <dimension name="level" length="4" /> <dimension name="time" length="1" isUnlimited="true" /> <attribute name="source" type="String" value="Fictional Model Output" /> <attribute name="Conventions" type="String" value="CF-1.0" /> <coordinateAxis name="time" shape="time" type="short" units="hours since 1996-1-1" axisType="Time"> <attribute name="standard_name" type="String" value="time" /> <attribute name="units" type="String" value="hours since 1996-1-1" /> <attribute name="_CoordinateAxisType" type="String" value="Time" /> </coordinateAxis> <coordinateAxis name="lat" shape="lat" type="int" units="degrees_north" axisType="Lat"> <attribute name="units" type="String" value="degrees_north" /> <attribute name="standard_name" type="String" value="latitude" /> <attribute name="_CoordinateAxisType" type="String" value="Lat" /> </coordinateAxis> <coordinateAxis name="lon" shape="lon" type="int" units="degrees_east" axisType="Lon"> <attribute name="units" type="String" value="degrees_east" /> <attribute name="long_name" type="String" value="longitude" /> <attribute name="_CoordinateAxisType" type="String" value="Lon" /> </coordinateAxis> <coordinateAxis name="level" shape="level" type="int" units="millibars" axisType="Pressure"> <attribute name="standard_name" type="String" value="air_pressure" /> <attribute name="units" type="String" value="millibars" /> <attribute name="_CoordinateAxisType" type="String" value="Pressure" /> </coordinateAxis> <variable name="temp" shape="time level lat lon" type="float" coordinateSystems="time-level-lat-lon"> <attribute name="long_name" type="String" value="temperature" /> <attribute name="standard_name" type="String" value="air_temperature" /> <attribute name="units" type="String" value="celsius" /> </variable> <variable name="rh" shape="time lat lon" type="float" coordinateSystems="time-lat-lon"> <attribute name="long_name" type="String" value="relative humidity" /> <attribute name="valid_range" type="double" value="0.0 1.0" /> </variable> <coordinateSystem name="time-level-lat-lon"> <coordinateAxisRef ref="time" /> <coordinateAxisRef ref="level" /> <coordinateAxisRef ref="lat" /> <coordinateAxisRef ref="lon" /> </coordinateSystem> <coordinateSystem name="time-lat-lon"> <coordinateAxisRef ref="time" /> <coordinateAxisRef ref="lat" /> <coordinateAxisRef ref="lon" /> </coordinateSystem> </netcdf> …………
发表评论
-
将博客搬至CSDN
2017-05-24 18:01 377将博客搬至CSDN -
Java基本类型与byte数组之间相互转换
2013-05-15 18:07 4352转:http://blog.sina.com.cn/s/bl ... -
Java 线程入门
2013-05-09 15:28 15201概念 线程,有时被称为轻量级进程(Lightweigh ... -
Java IO流 续
2013-05-08 09:39 13611.基于字节文件读写 FileInputStream和F ... -
Java IO流
2013-05-08 09:16 15441.流的概念 流是一个很形象的概念当程序需要读取数据的 ... -
EJB实体bean之间的关系-ORM
2013-05-06 08:05 12551.ORM: Object Relational ... -
第四章 简单工厂模式
2013-05-05 15:02 10511.简单工厂模式 简单工厂模式又叫做静态工厂方法模式。它 ... -
第三章 单例模式
2013-05-05 14:52 8873.1单例(Singleton)模式 保证一个类仅有一个 ... -
第二章 面向对象的几个基本原则
2013-05-05 14:42 23492.1 抽象类和接口 抽象类是可以继承一个抽象类 ... -
第一章 设计模式与简介
2013-05-05 14:16 11801.1什么是设计模式 人们在自己的环境中不断发现问题和寻 ... -
frameset session失效后 返回到 顶层登陆页面
2013-04-23 14:26 859采用frameset来布局网页的时候,可能由于session ... -
Xstream-xml和实体对象相互转换特殊问题
2012-09-06 18:39 6411之前发了一篇博文《xml和实体对象相互转换 一步到位 》 ... -
理解JMS
2012-09-06 16:31 2241首先JMS存在的理由: RPC(Remote proced ... -
系统权限设计
2012-09-05 21:56 1779主体对象: 1.用户 2. ... -
xml和实体对象相互转换 一步到位
2012-09-05 14:05 5483用Xstream完成xml与对象之间的相互转换,我在xstre ... -
回望Java中的多线程并发(一)
2012-09-05 08:55 1768并发其实并不等于多线程,可以理解为多线程是实现并发的一种方式, ... -
回望Java中的final关键字
2012-09-03 15:25 2404final关键字可以理解为“这个东西不能改变”。之所以要禁止改 ... -
Java内存区域与内存溢出异常
2012-09-02 18:56 1449之前根据平时的积累总 ... -
Netcdf (二)
2011-05-26 19:34 5181附件文档: 4 NetCDF Java 4.1 概述( ... -
接口 实现类 抽象
2011-02-28 20:28 1033接口(Interface)是一个角色(Role), 实现类( ...
相关推荐
netCDF是一种自描述、多维度、可移植的数据格式,广泛用于气象学、海洋学、地球物理学等领域,因为它能有效地存储大量的科学数据。本示例将详细介绍如何使用C#读取和写入netCDF文件。 首先,我们需要引入`netCDF4....
#### 一、NetCDF概述与数据结构 NetCDF(Network Common Data Form)是一种用于存储多维科学数据的标准文件格式。它主要用于气象学、海洋学等科学领域中的数据交换和存储。NetCDF文件由维(dimensions)、变量...
NetCDF(Network Common Data Form)是一种开放格式,用于存储多维数组数据,常用于气候模型、遥感数据等。本篇文章将重点讲解如何使用Java读取NetCDF文件以及生成等值线的实现方法,主要涉及两个关键库:netcdf-...
NetCDF(Network Common Data Form)是一种开放源代码的数据格式,广泛应用于气象、海洋、地球科学等领域,用于存储和处理大量的多维科学数据。标题中的"netcdf-4.1.3.tar.gz"指的是NetCDF库的4.1.3版本,以tar.gz...
在Ubuntu操作系统中,安装NetCDF(Network Common Data Form)是一个重要的任务,特别是在处理科学数据时。NetCDF是一种自我描述的数据格式,广泛用于气象学、海洋学、地球物理学等领域。为了在Ubuntu上支持NetCDF,...
NetCDF(Network Common Data Form)则是一种自我描述的数据格式,常用于气候、气象、海洋学等领域的数据存储和交换。本资料包是关于用Fortran读取NetCDF文件的综合资源,包含帮助文档、源代码和所需的库文件。 ...
NetCDF(Network Common Data Form)是一个用于创建、访问和共享科学数据的库和数据格式。其C语言接口允许开发者通过一系列的API函数来操作NetCDF文件。C语言操作NetCDF的用法手册详细讲解了如何使用这些API函数来...
NetCDF(Network Common Data Form)是一种用于存储和处理科学数据的自描述、机器无关的数据格式。NetCDF-4.2.1.1是这个库的一个版本,它在Linux环境下广泛应用于图像处理和其他科学计算任务。这个版本可能包含了对...
标题"netcdf netCDF4 nc文件"提及的核心概念是netCDF(Network Common Data Form),它是一种开放源代码的数据格式,用于存储和处理多维科学数据。netCDF4是netCDF格式的一个版本,引入了HDF5(Hierarchical Data ...
NetCDF不仅仅是一种数据存储格式,更是一种访问接口,允许用户以多维数据结构的形式存储和访问数据。每个NetCDF文件包含多维变量,支持整型、浮点型、字符型等多种数据类型,并且每个变量都带有元数据,如单位、名称...
NetCDF,全称为Network Common Data Format,是一种网络通用数据格式,最初设计用于存储气象科学数据,但现在被广泛应用于各种科学领域的数据存储。NetCDF文件格式允许数据以多维数组的形式存储,非常适合处理地理...
它们主要用于读取、操作和可视化NetCDF(Network Common Data Form)文件,这是一种广泛用于气象学、海洋学、地球物理学和其他科学领域的开放式数据格式。 NetCDF是一种自描述、多维度的数据格式,它允许存储大量的...
NetCDF(Network Common Data Form)是一种开放源代码的数据格式,广泛应用于气象、海洋、地球科学等领域,用于存储和处理多维数组数据。NetCDF库提供了一种标准接口,允许跨平台访问和操作这些数据文件。在.NET环境...
标题中的"NcGrib.zip_.net 存取grib2_NetCDF切分Grib2_java grib2_netcdf_netcdf与g"表明这是一个关于处理GRIB2文件的程序包,它涉及到.NET框架下的GRIB2数据存取、NetCDF文件的切分以及与Java环境下的GRIB2处理的...
NetCDF(network Common Data Form)网络通用数据格式,是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。用户可以借助多种方式...
NetCDF(Network Common Data Form)是一种开放源代码的数据格式,用于存储和共享科学数据。它支持多维数组,常用于气候、气象、海洋学、地理信息系统等领域的数据处理。NetCDF 4.2.1是该库的一个特定版本,包含了对...
NetCDF(Network Common Data Form)库是一个开源软件库和数据格式,主要用于在各种科学计算环境中存储和处理大型多维数组数据。它支持元数据,使得数据具有自我描述性,能够跨平台和跨程序共享。VC6.0是Microsoft ...
NetCDF(Network Common Data Form)是一种开放的数据格式,主要用于存储科学数据。它提供了一种标准方式来组织和访问多维数组数据,支持元数据,并且是跨平台的。在C++中,我们可以利用NetCDF的C++接口来读取、写入...