标签: netcdf

java netcdf 4教程

我在unidata网站上使用最新的netcdf jar库:http://www.unidata.ucar.edu/downloads/netcdf/index.jsp

我正在寻找一个java netcdf 4教程/示例,但我似乎无法在他们的网站或其他任何地方找到这个问题.版本4与以前的版本有很大的不同,因为写入函数(将数据写入变量)不再使用,并且被writeCDL取代......我想.有没有人用过最新版的netcdf和java?如果有人能指出我正确的方向,我真的很感激.谢谢你的帮助!-dom

PS这是他们的教程网站......没有提到java:http://www.unidata.ucar.edu/software/netcdf/docs/netcdf-tutorial/index.html

java netcdf

6
推荐指数
1
解决办法
4180
查看次数

在Ubuntu上编译Fortran netCDF程序

好的,这里有新问题.

我正在尝试编译simple_xy_wr.f90 - 一个netCDF示例程序 - 在Ubuntu上使用gfortran,我必须做一些非常愚蠢的事情; 我没有太多编译Fortran的经验.

首先,我安装了libnetcdf-dev软件包,其中包含类似的文件

/usr/lib/libnetcdf.a
/usr/lib/libnetcdff.a
/usr/include/netcdf.mod
Run Code Online (Sandbox Code Playgroud)

所以,我试图用(各种命令)编译代码

f95 -o xy -I/usr/include/ -L/usr/lib/ -lnetcdff -lnetcdf simple_xy_wr.f90
Run Code Online (Sandbox Code Playgroud)

我得到以下输出

/tmp/ccE6g7sr.o: In function `check.1847':
simple_xy_wr.f90:(.text+0x72): undefined reference to `__netcdf_MOD_nf90_strerror'
/tmp/ccE6g7sr.o: In function `MAIN__':
simple_xy_wr.f90:(.text+0x284): undefined reference to `__netcdf_MOD_nf90_create'
simple_xy_wr.f90:(.text+0x2b6): undefined reference to `__netcdf_MOD_nf90_def_dim'
simple_xy_wr.f90:(.text+0x2e8): undefined reference to `__netcdf_MOD_nf90_def_dim'
simple_xy_wr.f90:(.text+0x432): undefined reference to `__netcdf_MOD_nf90_def_var_manydims'
simple_xy_wr.f90:(.text+0x468): undefined reference to `__netcdf_MOD_nf90_enddef'
simple_xy_wr.f90:(.text+0x4aa): undefined reference to `__netcdf_MOD_nf90_put_var_2d_fourbyteint'
simple_xy_wr.f90:(.text+0x4cb): undefined reference to `__netcdf_MOD_nf90_close'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我认为我包括了正确的库.例如,似乎__netcdf_MOD_nf90_strerror应该在那里: …

fortran netcdf

6
推荐指数
2
解决办法
6878
查看次数

RNetCDF无法打开共享对象文件

我正在尝试使用该命令在我的笔记本电脑(Ubuntu 12.04)上安装RNetCDF软件包

install.packages('RNetCDF',lib='/home/my_computer/RSCRIPTS/R_LIB/',configure.args="--with-netcdf-include='/home/my_computer/bin/libs4cdo-0.0.10/netcdf-4.2/include/' --with-netcdf-lib='/home/my_computer/local/bin' --with-hdf5-lib='/home/my_computer/local/lib/' --with-udunits-include='/usr/local/lib/' --with-udunits-lib='/usr/local/lib/'",repos='http://star-www.st-andrews.ac.uk/cran/')
Run Code Online (Sandbox Code Playgroud)

但是包不会安装.请参阅以下消息:

trying URL 'http://star-www.st-andrews.ac.uk/cran/src/contrib/RNetCDF_1.6.1-2.tar.gz'
Content type 'application/x-gzip' length 70301 bytes (68 Kb)
opened URL
==================================================
downloaded 68 Kb

* installing *source* package ‘RNetCDF’ ...
** package ‘RNetCDF’ successfully unpacked and MD5 sums checked
checking for gcc... gcc -std=gnu99
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o …
Run Code Online (Sandbox Code Playgroud)

r netcdf

6
推荐指数
1
解决办法
2163
查看次数

有没有办法裁剪NETCDF文件?

想象一下,您有一个文件example.nc,其风力数据定义在90N,90S,180E,180W区域.无论如何我可以在linux中使用简单的nc类型命令(不用在matlab/python中提取数据来重写),裁剪此文件以包含一个较小的区域,上面的子集.

例如,30N,10S,60E和30W.

linux netcdf nco cdo-climate

6
推荐指数
2
解决办法
4696
查看次数

从多变量netCDF文件创建栅格砖列表

我一直在使用RCP(代表性浓度路径)空间数据.它是netCDF格式的一个很好的网格化数据集.如何获得砖块列表,其中每个元素代表一个多变量netCDF文件中的一个变量(通过变量我不是指lat,lon,time,depth ......等).这就是我试图做的事情.我无法发布数据示例,但如果您想查看数据,我已将下面的脚本设置为可重现.显然欢迎提出问题......我可能没有顺利地表达与代码相关的语言.干杯.

答:包装要求

    library(sp)
    library(maptools)
    library(raster)
    library(ncdf)
    library(rgdal)
    library(rasterVis)
    library(latticeExtra)
Run Code Online (Sandbox Code Playgroud)

B:收集数据并查看netCDF文件结构

    td <- tempdir()
    tf <- tempfile(pattern = "fileZ")

    download.file("http://tntcat.iiasa.ac.at:8787/RcpDb/download/R85_NOX.zip", tf , mode = 'wb' )
    nc <- unzip( tf , exdir = td )
    list.files(td)

## Take a look at the netCDF file structure, beyond this I don't use the ncdf package directly

    ncFile <- open.ncdf(nc)
    print(ncFile) 
    vars <- names(ncFile$var)[1:12] # I'll try to use these variable names later to make a list of bricks
Run Code Online (Sandbox Code Playgroud)

C:为一个变量创建栅格砖.级别对应于年份

    r85NOXene <- brick(nc, …
Run Code Online (Sandbox Code Playgroud)

r raster netcdf

6
推荐指数
1
解决办法
2004
查看次数

在xarray中导入和解码数据集,以避免_FillValue和missing_value冲突

当使用xarray open_dataset或open_mfdataset加载NARR netcdf数据集(例如ftp://ftp.cdc.noaa.gov/Datasets/NARR/monolevel/air.2m.2010.nc)时,xarray返回有关“与_FillValue和missing_values”。

输入:

ds = xarray.open_dataset('air.2m.2010.nc')

产生此错误:

ValueError: ('Discovered conflicting _FillValue and missing_value. Considering opening the offending dataset using decode_cf=False, corrected the attributes', 'and decoding explicitly using xray.conventions.decode_cf(ds)')

使用建议打开时:

ds = xarray.open_dataset('air.2m.2010.nc',decode_cf=False)

数据集已打开,但变量,时间,坐标等未解码(显然)。xarray.decode_cf(ds)显式使用似乎无法成功解码数据集,因为会遇到相同的错误。

我相信会出现此错误,因为NARR数据集是Lambert Conformal,因此由于xarray打开网格时的网格形状而导致一些缺失值,并且由于某些原因,这与填充值冲突。

在xarray中打开和解码此文件的最佳方法是什么?

注意:我已经能够使用netcdf4-python打开和解码,但是我希望能够在xarray中执行此操作,以利用dask提供的核心计算功能。

python netcdf python-xarray

6
推荐指数
2
解决办法
642
查看次数

Lat/lon使用Basemap和maskoceans在"for"循环后混淆

我试图在使用maskoceans时识别被遮罩像素的索引,这样我就可以只调用我目前正在全球范围内的代码中的陆地像素,即使我不关心海洋像素.我尝试了不同的方法,并注意到我的情节看起来很奇怪.最后,我意识到在我的纬度/经度指数中出现了混乱,尽管我实际上并没有碰到它们!这是代码:

import numpy as np
import netCDF4
from datetime import datetime, timedelta
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
import matplotlib.dates as mpldates
import heat_transfer_coeffs
from dew_interface import get_dew
from matplotlib.dates import date2num, num2date
import numpy as np
import netCDF4
import heat_transfer_coeffs as htc
from jug.task import TaskGenerator
import matplotlib.cm as cm
import mpl_toolkits
from mpl_toolkits import basemap
from mpl_toolkits.basemap import Basemap, maskoceans
np.seterr(all='raise')

# set global vars
ifile = netCDF4.Dataset('/Users/myfile.nc', 'r')
times = ifile.variables['time'][:].astype(np.float64)  # hours …
Run Code Online (Sandbox Code Playgroud)

python latitude-longitude netcdf python-2.7 matplotlib-basemap

6
推荐指数
1
解决办法
776
查看次数

向HDF5文件添加结构 - 相当于HDF5的NetCDF"约定"

NetCDF4具有向NetCDF添加结构的约定约定.我正在寻找类似的东西,但特别是对于HDF5.

我的总体目标是以标准方式为我的HDF5文件添加结构.我希望像HDF5用图像来定义一个类型,使用组和数据集上的属性〜就像:

CLASS: IMAGE
IMAGE_VERSION: 1.2
IMAGE_SUBCLASS: IMAGE_TRUECOLOR
...
Run Code Online (Sandbox Code Playgroud)

但据我所知,图像规范是独立的.也许我应该重用NetCDF"惯例"?

更新:

我知道NetCDF4是在HDF5之上实现的.在这种情况下,我们有来自湍流模拟和实验而非地理数据的数据.该数据通常限于<= 4D.我们已经使用HDF5存储这些数据,但我们没有开发标准.伪标准格式刚刚在组织内部有机地发展.

hdf5 netcdf

6
推荐指数
1
解决办法
245
查看次数

在python中缓存netCDF文件的文件句柄

有没有办法缓存python文件句柄?我有一个函数,它将netCDF文件路径作为输入,打开它,从netCDF文件中提取一些数据并关闭它.它被调用了很多次,每次打开文件的开销很高.

如何通过缓存文件句柄来加快速度?也许有一个python库可以做到这一点

python netcdf

6
推荐指数
1
解决办法
173
查看次数

xarray自动将_FillValue应用于netCDF输出的坐标

我正在尝试创建一个兼容cf的netcdf文件.我可以得到大约98%cf与xarray兼容但是我遇到了一个问题.当我在我正在创建的文件上执行ncdump时,我看到以下内容:

float lon(lon) ;
    lon:_FillValue = NaNf ;
    lon:long_name = "Longitude" ;
    lon:standard_name = "longitude" ;
    lon:short_name = "lon" ;
    lon:units = "degrees_east" ;
    lon:axis = "X" ;
    lon:valid_min = -180.f ;
    lon:valid_max = 180.f ;
float lat(lat) ;
    lat:_FillValue = NaNf ;
    lat:long_name = "Latitude" ;
    lat:standard_name = "latitude" ;
    lat:short_name = "lat" ;
    lat:units = "degrees_north" ;
    lat:axis = "Y" ;
    lat:valid_min = -90.f ;
    lat:valid_max = 90.f ;
double time(time) ;
    time:_FillValue = NaN ;
    time:standard_name = …
Run Code Online (Sandbox Code Playgroud)

python netcdf python-xarray

6
推荐指数
1
解决办法
529
查看次数