Saving tracks#
huracanpy.save supports saving data as CSV or NetCDF which is detected by the file extension.
You can also use xarray.Dataset.to_netcdf to save NetCDF files, but they must then be loaded with xarray.open_dataset huracanpy.save does call to_netcdf but also has some additional steps to make sure the resulting NetCDF file uses the CF convention used for loading.
[1]:
import huracanpy
tracks = huracanpy.load(huracanpy.example_csv_file) # Load sample file
huracanpy.save(tracks, "saved_data.csv") # Save as csv
huracanpy.save(tracks, "saved_data.nc") # Save as NetCDF
[2]:
!head -5 saved_data.csv
track_id,i,j,lon,lat,slp,zs,wind10,time
0,482,417,120.5,-14.25,99876.38,-10.7118,14.64815,1980-01-06 06:00:00
0,476,419,119.0,-14.75,99811.0,-16.10522,13.98848,1980-01-06 12:00:00
0,476,420,119.0,-15.0,99536.94,-40.20874,13.69575,1980-01-06 18:00:00
0,477,420,119.25,-15.0,99414.56,-50.43206,17.97812,1980-01-07 00:00:00
[3]:
!ncdump -h saved_data.nc
netcdf saved_data {
dimensions:
trajectory = 3 ;
record = 99 ;
variables:
int64 track_id(trajectory) ;
int64 i(record) ;
int64 j(record) ;
double lon(record) ;
lon:_FillValue = NaN ;
double lat(record) ;
lat:_FillValue = NaN ;
double slp(record) ;
slp:_FillValue = NaN ;
double zs(record) ;
zs:_FillValue = NaN ;
double wind10(record) ;
wind10:_FillValue = NaN ;
int64 time(record) ;
time:units = "hours since 1980-01-06 06:00:00" ;
time:calendar = "proleptic_gregorian" ;
int64 rowSize(trajectory) ;
rowSize:sample_dimension = "record" ;
}