Install the last release with pip:
pip install 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.
Our next big steps:
- To provide Bio-geochemical variables (#22, #77, #81)
- To develop expert methods related to Quality Control of the data with other python softwares like:
- pyowc: #33, #53
- bgcArgoDMQC: #37
We aim to provide high level helper methods to load Argo data and meta-data from:
- Ifremer erddap
- local copy of the GDAC ftp folder
- Index files (local and online)
- Argovis
- Online GDAC ftp
We also aim to provide high level helper methods to visualise and plot Argo data and meta-data:
- Map with trajectories
- Histograms for meta-data
- Waterfall plots
- T/S diagram