使用Java读取NetCDF格式数据

在WebGIS的开发过程中,有些时候会不可避免地接触到NetCDF格式的数据。NetCDF(network Common Data Form)格式的数据把对某一研究对象的多维信息归类在一起,它可以在任意一台操作系统进行创建、使用和分享。目前netCDF已经广泛用于地球物理、气象科学等领域。

NetCDF的文件后缀名为.nc,下面以某个nc文件为例,通过Java读取netCDF数据。该件为世界高程数据。

第一步:从网上下载读取netCDF的Jar包,下载路径如下:

https://artifacts.unidata.ucar.edu/content/repositories/unidata-releases/edu/ucar/netcdfAll/4.6.11/netcdfAll-4.6.11.jar

第二步:在Eclipse/MyEclipse开发平台下引用刚刚下载的jar包,具体操作过程详见其他博客。

第三步:新建一个Java在该类中新建一个名为read()的方法,该方法不传递任何参数。

第四步:在read()方法里面编写以下代码,该代码用来从本地读取netCDF文件。

NetcdfFile openNC = NetcdfFile.open("C:\\FAKEDATA.nc");

第五步:接着编写以下代码,用来读取维度信息。

List<Dimension> dimensions = openNC.getDimensions();

这里的netCDF文件是包含有经度(lon)、纬度(lat)的数值,其文件格式为[lat = 2000;, lon = 4000;]

第六步:接着编写以下代码,用来读取各个变量。

List<Variable> variables = openNC.getVariables();

在调试的过程中,variables会出现以下信息,这里交代了高程信息、X值和Y值和维度信息。其中,elevation是二维变量,lat、lon是一维变量:

[short elevation(lat=2000, lon=4000);
  :standard_name = "height_above_reference_ellipsoid";
  :long_name = "Elevation relative to sea level";
  :units = "m";
, double lat(lat=2000);
  :standard_name = "latitude";
  :long_name = "latitude";
  :units = "degrees_north";
  :axis = "Y";
, double lon(lon=4000);
  :standard_name = "longitude";
  :long_name = "longitude";
  :units = "degrees_east";
  :axis = "X";
]

第七步:根据变量名称获取变量信息,然后用户可以设定范围进行局部读取。

猜你喜欢

转载自blog.csdn.net/weixin_38307752/article/details/84307560