In [1]:
from shapely.geometry import MultiPolygon, mapping, polygon
import json
In [2]:
#url = 'http://www.smast.umassd.edu:8080/thredds/dodsC/FVCOM/NECOFS/Forecasts/NECOFS_GOM3_FORECAST.nc'
#url = 'http://www.smast.umassd.edu:8080/thredds/dodsC/FVCOM/NECOFS/Forecasts/NECOFS_FVCOM_OCEAN_MASSBAY_FORECAST.nc'
url = 'http://www.smast.umassd.edu:8080/thredds/dodsC/FVCOM/NECOFS/Forecasts/NECOFS_WAVE_FORECAST.nc'
use netcdf4 because UGRID takes longer
In [3]:
import netCDF4
nc = netCDF4.Dataset(url)
ncv = nc.variables
lon = ncv['lon'][:]
lat = ncv['lat'][:]
nv = ncv['nv'][:,:].T - 1
In [4]:
#mp = MultiPolygon([polygon.Polygon(zip(lon[element],lat[element])) for element in nv])
mp = MultiPolygon([polygon.Polygon(zip(lon[element],lat[element])) for element in nv[0:5]])
In [5]:
type(mp)
Out[5]:
In [6]:
mp
Out[6]:
In [7]:
json.dumps(mapping(mp))
Out[7]:
In [8]:
with open('ugrid.json','w') as f:
json.dump(mapping(mp), f)
In [8]:
In [8]: