What’s New¶
v0.1.7 (4 Jan. 2021)¶
Long due release !
Features and front-end API
Live monitor for the status (availability) of data sources. See documentation page on Status of sources. (#36) by G. Maze.
import argopy
argopy.status()
# or
argopy.status(refresh=15)
Optimise large data fetching with parallelization, for all data fetchers (erddap, localftp and argovis). See documentation page on Parallel data fetching. Two parallel methods are available: multi-threading or multi-processing. (#28) by G. Maze.
from argopy import DataFetcher as ArgoDataFetcher
loader = ArgoDataFetcher(parallel=True)
loader.float([6902766, 6902772, 6902914, 6902746]).to_xarray()
loader.region([-85,-45,10.,20.,0,1000.,'2012-01','2012-02']).to_xarray()
Breaking changes with previous versions
In the teos10 xarray accessor, the
standard_name
attribute will now be populated using values from the CF Standard Name table if one exists. The previous values ofstandard_name
have been moved to thelong_name
attribute. (#74) by A. Barna.The unique resource identifier property is now named
uri
for all data fetchers, it is always a list of strings.
Internals
New
open_mfdataset
andopen_mfjson
methods in Argo stores. These can be used to open, pre-process and concatenate a collection of paths both in sequential or parallel order. (#28) by G. Maze.Unit testing is now done on a controlled conda environment. This allows to more easily identify errors coming from development vs errors due to dependencies update. (#65) by G. Maze.
v0.1.6 (31 Aug. 2020)¶
JOSS paper published. You can now cite argopy with a clean reference. (#30) by G. Maze and K. Balem.
Maze G. and Balem K. (2020). argopy: A Python library for Argo ocean data analysis. Journal of Open Source Software, 5(52), 2425 doi: 10.21105/joss.02425.
v0.1.5 (10 July 2020)¶
Features and front-end API
A new data source with the argovis data fetcher, all access points available (#24). By T. Tucker and G. Maze.
from argopy import DataFetcher as ArgoDataFetcher
loader = ArgoDataFetcher(src='argovis')
loader.float(6902746).to_xarray()
loader.profile(6902746, 12).to_xarray()
loader.region([-85,-45,10.,20.,0,1000.,'2012-01','2012-02']).to_xarray()
Easily compute TEOS-10 variables with new argo accessor function teos10. This needs gsw to be installed. (#37) By G. Maze.
from argopy import DataFetcher as ArgoDataFetcher
ds = ArgoDataFetcher().region([-85,-45,10.,20.,0,1000.,'2012-01','2012-02']).to_xarray()
ds = ds.argo.teos10()
ds = ds.argo.teos10(['PV'])
ds_teos10 = ds.argo.teos10(['SA', 'CT'], inplace=False)
argopy can now be installed with conda (#29, #31, #32). By F. Fernandes.
conda install -c conda-forge argopy
Breaking changes with previous versions
The
local_ftp
option of thelocalftp
data source must now points to the folder where thedac
directory is found. This breaks compatibility with rsynced local FTP copy because rsync does not give adac
folder (e.g. #33). An instructive error message is raised to notify users if any of the DAC name is found at the n-1 path level. (#34).
Internals
Implement a webAPI availability check in unit testing. This allows for more robust
erddap
andargovis
tests that are not only based on internet connectivity only. (5a46a39).
v0.1.4 (24 June 2020)¶
Features and front-end API
ds = ArgoDataFetcher().region([-85,-45,10.,20.,0,1000.,'2012-01','2012-12']).to_xarray()
ds = ds.argo.point2profile()
ds_interp = ds.argo.interp_std_levels(np.arange(0,900,50))
Insert in a Jupyter notebook cell the Euro-Argo fleet monitoring dashboard page, possibly for a specific float (#20). By G. Maze.
import argopy
argopy.dashboard()
# or
argopy.dashboard(wmo=6902746)
The
localftp
index and data fetcher now have theregion
andprofile
access points available (#25). By G. Maze.
Breaking changes with previous versions
[None]
Internals
Now uses fsspec as file system for caching as well as accessing local and remote files (#19). This closes issues #12, #15 and #17. argopy fetchers must now use (or implement if necessary) one of the internal file systems available in the new module
argopy.stores
. By G. Maze.Erddap fetcher now uses netcdf format to retrieve data (#19).
v0.1.3 (15 May 2020)¶
Features and front-end API
from argopy import IndexFetcher as ArgoIndexFetcher
idx = ArgoIndexFetcher().float(6902746)
idx.to_dataframe()
idx.plot('trajectory')
The index
fetcher can manage caching and works with both Erddap and localftp data sources. It is basically the same as the data fetcher, but do not load measurements, only meta-data. This can be very usefull when looking for regional sampling or trajectories.
Tip
Performance: we recommand to use the localftp
data source when working this index
fetcher because the erddap
data source currently suffers from poor performances. This is linked to #16 and is being addressed by Ifremer.
The index
fetcher comes with basic plotting functionalities with the argopy.IndexFetcher.plot()
method to rapidly visualise measurement distributions by DAC, latitude/longitude and floats type.
Warning
The design of plotting and visualisation features in argopy
is constantly evolving, so this may change in future releases.
The
argopy.DataFetcher
now has aargopy.DataFetcher.to_dataframe()
method to return apandas.DataFrame
.New utilities function:
argopy.utilities.open_etopo1()
,argopy.show_versions()
.
Breaking changes with previous versions
The
backend
option in data fetchers and the global optiondatasrc
have been renamed tosrc
. This makes the code more coherent (ec6b32e).
Code management
v0.1.2 (15 May 2020)¶
We didn’t like this one this morning, so we move one to the next one !
v0.1.1 (3 Apr. 2020)¶
Features and front-end API
Added new data fetcher backend
localftp
in DataFetcher (c5f7cb6):
from argopy import DataFetcher as ArgoDataFetcher
argo_loader = ArgoDataFetcher(backend='localftp', path_ftp='/data/Argo/ftp_copy')
argo_loader.float(6902746).to_xarray()
Introduced global
OPTIONS
to set values for: cache folder, dataset (eg:phy or bgc), local ftp path, data fetcher (erddap or localftp) and user level (standard or expert). Can be used in context with (83ccfb5):
with argopy.set_options(mode='expert', datasrc='erddap'):
ds = argopy.DataFetcher().float(3901530).to_xarray()
Added a
argopy.tutorial
module to be able to load sample data for documentation and unit testing (4af09b5):
ftproot, flist = argopy.tutorial.open_dataset('localftp')
txtfile = argopy.tutorial.open_dataset('weekly_index_prof')
Improved xarray argo accessor. Added methods for casting data types, to filter variables according to data mode, to filter variables according to quality flags. Useful methods to transform collection of points into collection of profiles, and vice versa (14cda55):
ds = argopy.DataFetcher().float(3901530).to_xarray() # get a collection of points
dsprof = ds.argo.point2profile() # transform to profiles
ds = dsprof.argo.profile2point() # transform to points
Changed License from MIT to Apache (25f90c9)
Internal machinery
Add
__all__
to controlfrom argopy import *
(83ccfb5)All data fetchers inherit from class
ArgoDataFetcherProto
inproto.py
(44f45a5)Data fetchers use default options from global OPTIONS
In Erddap fetcher: methods to cast data type, to filter by data mode and by QC flags are now delegated to the xarray argo accessor methods.
Data fetchers methods to filter variables according to user mode are using variable lists defined in utilities.
argopy.utilities
augmented with listing functions of: backends, standard variables and multiprofile files variables.Introduce custom errors in errors.py (2563c9f)
Front-end API ArgoDataFetcher uses a more general way of auto-discovering fetcher backend and their access points. Turned of the
deployments
access point, waiting for the index fetcher to do that.Improved xarray argo accessor. More reliable
point2profile
and data type casting withcast_type
Code management
v0.1.0 (17 Mar. 2020)¶
Initial release.
Erddap data fetcher