Install the last release with conda:
conda install -c conda-forge argopy
or pip:
pip install argopy
or conda:
conda install -c conda-forge argopy
But since this is a young library in active development, use direct install from this repo to benefit from the latest version:
pip install git+http://github.com/euroargodev/argopy.git@master
The argopy
library is tested to work under most OS (Linux, Mac) and with python versions 3.7 and 3.8.
Import the data fetcher:
from argopy import DataFetcher as ArgoDataFetcher
and then, set it up to request data for a specific space/time domain:
argo_loader = ArgoDataFetcher().region([-85,-45,10.,20.,0,10.])
argo_loader = ArgoDataFetcher().region([-85,-45,10.,20.,0,1000.,'2012-01','2012-12'])
for profiles of a given float:
argo_loader = ArgoDataFetcher().profile(6902746, 34)
argo_loader = ArgoDataFetcher().profile(6902746, np.arange(12,45))
argo_loader = ArgoDataFetcher().profile(6902746, [1,12])
or for one or a collection of floats:
argo_loader = ArgoDataFetcher().float(6902746)
argo_loader = ArgoDataFetcher().float([6902746, 6902747, 6902757, 6902766])
Once your fetcher is initialized you can trigger fetch/load data like this:
ds = argo_loader.to_xarray() # or:
ds = argo_loader.load().data
By default fetched data are returned in memory as xarray.DataSet. From there, it is easy to convert it to other formats like a Pandas dataframe:
df = ArgoDataFetcher().profile(6902746, 34).load().data.to_dataframe()
or to export it to files:
ds = ArgoDataFetcher().region([-85,-45,10.,20.,0,100.]).to_xarray()
ds.to_netcdf('my_selection.nc')
# or by profiles:
ds.argo.point2profile().to_netcdf('my_selection.nc')
Argo index are returned as pandas dataframe. Index fetchers works similarly to data fetchers.
Load the Argo index fetcher:
from argopy import IndexFetcher as ArgoIndexFetcher
then, set it up to request index for a specific space/time domain:
index_loader = ArgoIndexFetcher().region([-85,-45,10.,20.])
index_loader = ArgoIndexFetcher().region([-85,-45,10.,20.,'2012-01','2014-12'])
or for one or a collection of floats:
index_loader = ArgoIndexFetcher().float(6902746)
index_loader = ArgoIndexFetcher().float([6902746, 6902747, 6902757, 6902766])
Once your fetcher is initialized you can trigger fetch/load index like this:
df = index_loader.to_dataframe() # or
df = index_loader.load().index
Note that like the data fetcher, the index fetcher can use different sources, a local copy of the GDAC ftp for instance:
index_fetcher = ArgoIndexFetcher(src='localftp', path_ftp='/path/to/your/argo/ftp/', index_file='ar_index_global_prof.txt')
For plottings methods, you'll need matplotlib
and possibly cartopy
and seaborn
installed.
Argo Data and Index fetchers provide direct plotting methods, for instance:
ArgoDataFetcher().float([6902745, 6902746]).plot('trajectory')
See the documentation page for more examples.
See milestone here: https://github.com/euroargodev/argopy/milestone/3