siphon error - 400: NETCDF4 format not supported for ANY_POINT feature typ

127 Views Asked by At

I'm trying to get a dataset from TDScatalog with siphon but with multiples variables show me that error or the last line. Here the code:

import siphon
from siphon.catalog import TDSCatalog
import datetime

from xarray.backends import NetCDF4DataStore
import xarray as xr

point = [-7, 41]
hours = 48

best_gfs = TDSCatalog('http://thredds.ucar.edu/thredds/catalog/grib/NCEP/GFS/'
                      'Global_0p25deg/catalog.xml?dataset=grib/NCEP/GFS/Global_0p25deg/Best')
best_gfs.datasets
best_ds = list(best_gfs.datasets.values())[0]
ncss = best_ds.subset()

query = ncss.query()
query.lonlat_point( point[1], point[0] ).time_range(datetime.datetime.utcnow(), datetime.datetime.utcnow() + datetime.timedelta(hours))
query.accept('netcdf4')
query.variables('Temperature_surface', 
                'Relative_humidity_height_above_ground',   
                'u-component_of_wind_height_above_ground',
                'v-component_of_wind_height_above_ground',
                'Wind_speed_gust_surface'
                )
data = ncss.get_data(query)

Thanks!

1

There are 1 best solutions below

0
On

That message is because your point request is trying to return a mix of time series (your _surface variables) and time series of profiles (the u/v wind components). The combination of different features in a single netCDF file is unsupported by the netCDF CF-Conventions.

One work-around is to request CSV or XML formatted data instead (which siphon can still parse and return as a dictionary-of-arrays).

The other is to make separate requests for fields with different geometry. So one for Temperature_surface and Wind_speed_gust_surface, one for u-component_of_wind_height_above_ground and v-component_of_wind_height_above_ground, and one final one for Relative_humidity_height_above_ground. This last split is working around an apparent bug in the THREDDS Data Server where profiles with different vertical levels can't be combined either.