我见过以下使用excel访问netcdf文件的示例。
我想知道是否有可能基于特定的索引访问数据的特定部分(例如,来自4D变量的地图上某个点的参数的时间序列)
在我看来,没有任何编码是不可能的?
有什么想法吗?
发布于 2013-02-02 00:58:14
据我所知,使用Excel从Unidata的THREDDS数据服务器访问数据有两种方法:
1)提取时间序列使用来自OpenDAP的ASCII码响应,如下所述:https://publicwiki.deltares.nl/display/OET/OPeNDAP+access+with+Excel。这种方法适用于任何OPeNDAP服务器。
2)使用THREDDS数据服务器提供的NetCDF-Subset服务(这里我使用的是最新的TDS 4.3版)。
因此,如果您转到由THREDDS提供服务的特定数据集,如以下所示:
http://geoport-dev.whoi.edu/thredds/catalog/coawst_2_2/fmrc/catalog.html?dataset=coawst_2_2/fmrc/coawst_2_2_best.ncd
然后单击NetcdfSubset服务,然后单击"Grid as Point Dataset",您将获得以下表单:
http://geoport-dev.whoi.edu/thredds/ncss/grid/coawst_2_2/fmrc/coawst_2_2_best.ncd/dataset.html
您可以在其中提取离特定位置最近的时间序列,并选择CSV作为输出类型,当然可以轻松地将其加载到Excel中。这个表单只生成一个RESTful URL查询,这个查询可以修改,也可以通过代码轻松生成。因此,例如,此查询提取变量temp在接近地面且最接近-70.6W,42.3N的6小时间隔内的时间序列:
http://geoport-dev.whoi.edu/thredds/ncss/grid/coawst_2_2/fmrc/coawst_2_2_best.ncd?var=temp&latitude=42.3&longitude=-70.6&time_start=2011-08-01T00%3A00%3A00Z&time_end=2011-08-01T06%3A00%3A00Z&vertCoord=-.03&accept=csv
产生:
date,lat[unit="degrees_north"],lon[unit="degrees_east"],vertCoord[unit=""],temp[unit="Celsius"]
2011-08-01T00:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.44405174255371
2011-08-01T01:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.361846923828125
2011-08-01T02:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.31492805480957
2011-08-01T03:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.254281997680664
2011-08-01T04:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.24005889892578
2011-08-01T05:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.186853408813477
2011-08-01T06:00:00Z,42.31439418116631,-70.58628311827651,-0.03125,18.114046096801758此处提供了有关NetCDF子集服务的文档:http://www.unidata.ucar.edu/projects/THREDDS/tech/interfaceSpec/NetcdfSubsetService_4_3.html#Vertical
我已经向Unidata报告了NetCDF子集服务中的垂直坐标的一些问题:
我已经向Unidata报告了所有这些问题。
https://stackoverflow.com/questions/14650585
复制相似问题