- Added support for new products:
- Swarm ULF wave project:
SW_OPER_ULFxMAG_2F
SW_OPER_PC1xMAG_2F
- MIGRAS project providing ionospheric gradients of TEC and electron density:
SW_OPER_NIX_TMS_2F
SW_OPER_TIX_TMS_2F
- TIRO project providing TEC and electron density derived from CHAMP, GRACE, and GRACE-FO:
CH_OPER_TEC_TMS_2F
GR_OPER_TECxTMS_2F
GF_OPER_TECxTMS_2F
GR_OPER_NE__KBR_2F
GF_OPER_NE__KBR_2F
- Swarm ULF wave project:
- Added :py:meth:`viresclient.SwarmRequest.get_collection_info` to query collection details from server (e.g. time extent)
- Added support for Swarm FAST TEC
SW_FAST_TECxTMS_2F
products. - Fixed error when loading some chunked data with xarray, when one of the chunks has zero length
- Internal WPS fixes which may be required to access the server in the future
- Improved robustness during asynchronous requests (the client now repeats the failed job status polling 3 times with 20 seconds interval)
See PR#121 for details
- VirES now uses CHAOS-8 and IGRF-14 magnetic models. These models are referred to as
"CHAOS"
and"IGRF"
- older versions are not available.
- Added TOLEOS thermosphere products:
- e.g.
"CH_OPER_DNS_ACC_2_"
and"CH_OPER_WND_ACC_2_"
from CHAMP and equivalents from GRACE and GRACE-FO - conjunction information within
"MM_CON_SPH_2_:crossover"
and"MM_CON_SPH_2_:plane_alignment"
- e.g.
- Added CHAMP magnetic dataset,
CH_ME_MAG_LR_3
- Added FAC FAST dataset
SW_FAST_FACxTMS_2F
- Added auxiliaries
["F107_avg81d", "F107_avg81d_count"]
- Updated and added ML-calibrated variants of GOCE & GRACE-FO magnetic datasets,
GO_MAG_ACAL_CORR_ML
&GFx_MAG_ACAL_CORR_ML
- Fix to allow multiple VOBS to be fetched in one request
- Fix :py:meth:`viresclient.SwarmRequest.available_times` usage with pandas 2.x
- Support for (L1B) FAST data
- Added
ignore_cached_models=True
in :py:meth:`viresclient.SwarmRequest.set_products` - Added description of model handling in docs
- Fix support for cdflib version 1.0
viresclient
package now available through conda-forge- Added parameter to Swarm
MAG
collections:dF_Sun
- Added GOCE ML magnetic dataset:
GO_MAG_ACAL_CORR_ML
- Breaking change:
- :py:meth:`viresclient.ReturnedData` property
.range_filters
changed to.data_filters
- Xarray datasets attributes (
.attrs
property) have"RangeFilters"
changed to"AppliedFilters"
- :py:meth:`viresclient.ReturnedData` property
- Added new arbitrary data filter functionality, with new methods:
- Added new collections for Swarm:
SW_PREL_EFIxIDM_2_
(typeEFI_IDM
: ion drift velocities & effective masses, SLIDEM project)GO_MAG_ACAL_CORR
(typeMAG_GOCE
: magnetic data from the GOCE mission)
- Added new collections for Aeolus:
ALD_U_N_1A
- Fixed bug in merging multi-file datasets when loading as xarray
- Added new collections:
SW_OPER_EFIxTIE_2_
(typeEFI_TIE
: ion temperatrues)SW_EXPT_EFIx_TCT02
&SW_EXPT_EFIx_TCT16
(typesEFI_TCT02
,EFI_TCT16
: cross-track ion flows)
- Removed upper version limits for dependencies
- Update Jinja2 dependency
- Added functionality to support VirES for Aeolus. See https://notebooks.aeolus.services
- Added dependency: netCDF4
- Added :py:meth:`viresclient.SwarmRequest.get_conjunctions` to fetch Swarm A/B conjunctions
- Fixed compatibility with xarray v0.19 of
reshape
kwarg in :py:meth:`viresclient.ReturnedData.as_xarray`
- Added support for:
- PRISM products (
SW_OPER_MITx_LP_2F
,SW_OPER_MITxTEC_2F
,SW_OPER_PPIxFAC_2F
) - Multi-mission magnetic products (
CS_OPER_MAG
,GRACE_x_MAG
,GFx_OPER_FGM_ACAL_CORR
) - Swarm spacecraft positions (
SW_OPER_MODx_SC_1B
)
- PRISM products (
- Fixed missing auxiliary "dDst"
- Fixed fetching longer time series of hourly observatory products
- Added new progress bar that tracks processing of chunks in long requests
- Added support for:
- VOBS products (Virtual Observatories), e.g. collection
SW_OPER_VOBS_1M_2_
- AUX_OBSH products (hourly ground observatory data)
- VOBS products (Virtual Observatories), e.g. collection
- Added :py:meth:`viresclient.SwarmRequest.available_times` to query temporal availability of any collection
- Added new
reshape=True
kwarg to :py:meth:`viresclient.ReturnedData.as_xarray` to enable optional reshaping of xarray datasets loaded from VOBS and AUX_OBS collections to higher-dimensional objects containing a new dimension (IAGA_code
for AUX_OBS andSiteCode
for VOBS) - Added command line tool,
viresclient clear_credentials
, to help delete the stored credentials - Changed tqdm progress bars to use
tqdm.notebook
when in Jupyter notebook (otherwise still uses plain tqdm) - Dropped
"Timestamp"
variable attribute"units"
(i.e.ds["Timestamp"].attrs["units"]
) when loading asxarray.Dataset
, for compatibility with xarray 0.17 when saving as netcdf
- Fix usage of cdflib v0.3.20
- Fix use of
expand
in.as_dataframe()
forAUX_OBS
- Added support for:
- AUX_OBS products
- AEBS products
- MLI_SHA_2E
- See :ref:`Available parameters for Swarm` for details of the collection and measurement names
- Added :py:meth:`viresclient.SwarmRequest.available_observatories` to query the AUX_OBS collections to identify IAGA codes available within each collection
- Added automatic initialisation of access token when running on VRE
- Added new composed model aliases (shortcuts)
- Fix to support the new EEFxTMS_2F baseline 02:
- Product now available for Swarm Charlie (
C
) EEF
unit changed fromV/m
tomV/m
- New measurement,
EEJ
- Variable renamed:
flag
toFlag
- Product now available for Swarm Charlie (
- Provides access to
MAGx_HR
collections (50Hz magnetic measurements) - Allows pandas v1.0+
- Dataframe index name is now set to "Timestamp" (fixes regression in a previous version)
- IGRF model series have changed name:
IGRF-12
is dropped in favour ofIGRF
which now provides the latest IGRF (currently IGRF-13) request.available_collections("MAG")
can now be called to filter by collection groups, and now returns a dict instead of a list- Improvements for
xarray.Dataset
support:- NEC now provided as named coordinates for
B_NEC
-type variables - Similarly (VFM, quaternion, WGS84) coordinates also provided for the variables ["B_VFM", "dB_Sun", "dB_AOCS", "dB_other", "B_error"], ["q_NEC_CRF"], ["GPS_Position", "LEO_Position"] respectively
- Metadata (units and description) are now set for each variable
- (With xarray 0.14+, try
xarray.set_options(display_style="html")
for nicer output)
- NEC now provided as named coordinates for
AMPS is now accessible as a regular model on the DISC server, see:
request = SwarmRequest("https://staging.viresdisc.vires.services/ows") request.get_model_info(["AMPS"])
xarray.Dataset objects now contain dimension names for all variables. Variables containing
B_NEC
get theNEC
dimension name.CHAOS model series have changed name:
CHAOS-6-Core
etc. is dropped forCHAOS-Core
etc. which provides the latest version of the CHAOS models (currently CHAOS-7)Better error message when authentication with server fails.
When in notebooks: Detect empty or invalid credentials (e.g. on first usage), direct user to the token generation page, and prompt for token input.
Added
request.list_jobs()
to give info on previous two jobs on the server (failed/running/succeeded).
- Fixed orbit number queries (get_orbit_number)
- Added model sources to model info
- Added low level data upload API and CLI
- Added set_token convenience function for quick configuration
- Changed list of accessible models:
- Removed
MCO_SHA_2F
,SIFM
- Added
MF7
,LCS-1
- Removed
Fixed issues with running on Windows
Enforcing Python v3.5+ for installation
Allowing higher versions of cdflib, pandas, and xarray
Added CLI configuration for setting server address and token
Metadata for source lineage is now easier to access (names of original ESA data files, details of models used, and filters applied). These are set as properties of :meth:`viresclient.ReturnedData` (i.e.
data
) and as metadata (.attrs
) in theDataset
returned from.as_xarray()
:data.sources data.magnetic_models data.range_filters ds = data.as_xarray() ds.Sources ds.MagneticModels ds.RangeFilters
Added access to collections
SW_OPER_IPDxIRR_2F
Added auxiliary data
F107
which is the hourly F10.7 value. This is in addition toF10_INDEX
which was already present, which is a daily average.Added possibility of accessing multiple collections simultaneously, e.g.:
request.set_collection("SW_OPER_MAGA_LR_1B", "SW_OPER_MAGC_LR_1B")
Added optional "expansion" of dataframes with:
data.as_dataframe(expand=True)
This expands columns which contain vectors (e.g.
B_NEC
) into separate columns named like:B_NEC_N
,B_NEC_E
,B_NEC_C
. This is recommended so that numpy operations will work on the columns. The default isexpand=False
to preserve the older behaviour.
Changes from v0.2.6 to 0.3.0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^-
- Service officially open to public through self-registration on https://vires.services
- Token-based authentication added
Changes from v0.2.5 to 0.2.6 ^^^^^^^^^^^^^^^^^^^^^^^^^^^-
- New model composition behaviour is implemented, extending what is possible with the
models
kwarg in :meth:`viresclient.SwarmRequest.set_products` (with backwards compatibility). See demo in https://github.com/smithara/viresclient_examples/blob/master/model_residuals_and_cartopy.ipynb - New method :meth:`viresclient.SwarmRequest.get_model_info` to fetch model details from server.
- :meth:`viresclient.SwarmRequest.available_models` is updated with these details.
- New parameters in TEC collections:
Elevation_Angle
,Absolute_VTEC
. - New parameters in auxiliaries:
OrbitDirection
,QDOrbitDirection
. - The auxiliary
Kp
is now provided as the proper Kp value, andKp10
is provided with the old behaviour with the value of Kp*10. - Updated dependency on cdflib to v0.3.9, and xarray to allow both v0.10.x and v0.11.x.
Changes from v0.2.4 to 0.2.5 ^^^^^^^^^^^^^^^^^^^^^^^^^^^-
- EFI collections have changed from
SW_OPER_EFIx_PL_1B
toSW_OPER_EFIx_LP_1B
, with different measurement variables - Added support for user-defined models by providing a .shc file path as the
custom_model
in :meth:`viresclient.SwarmRequest.set_products`. Model evaluations and residuals will then be returned, named as "Custom_Model", in the same way as other models behave. - Added alternative input start and end times as ISO-8601 strings to :meth:`viresclient.SwarmRequest.get_between`
- Minor bug fixes
Changes from v0.2.1 to v0.2.4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^--
- Added models CHAOS-6-MMA-Primary and CHAOS-6-MMA-Secondary
Changes from v0.2.0 to v0.2.1 ^^^^^^^^^^^^^^^^^^^^^^^^^^^--
Improved performance of pandas and xarray loading from cdf.
Added
nrecords_limit
option to :meth:`viresclient.SwarmRequest.get_between` to override the default maximum number of records in each request. Use this if a request is failing with a server error that the maximum allowable number of records has been exceeded - but this means that there is probably duplicate data on the server (old and new versions), so check the data that gets returned:data = request.get_between(start_time, end_time, nrecords_limit=3456000) ds = data.as_xarray() # Identify negative time jumps np.where(np.diff(ds["Timestamp"]).astype(float) < 0) # e.g [2519945, 5284745, 5481414] for i in [2519945, 5284745, 5481414]: print(ds.isel(Timestamp=i)) # Length of day should be 86400 ds.sel(Timestamp='2014-02-02')Added
tmpdir
option to :meth:`viresclient.SwarmRequest.get_between` to override the default temporary file directory. The default is selected automatically according to https://docs.python.org/3/library/tempfile.html#tempfile.mkstemp (usually /tmp). This may not be suitable when fetching large amounts of data as some machines may have limited space available in /tmp or there may be a higher performance or preferred location.
Changes from v0.1.0 to v0.2.0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^--
- Now use
SwarmRequest
instead ofClientRequest
.- kwarg
subsample
changed tosampling_step
.- Added references to .available_collections() and .available_models().
- User credentials are automatically stored in a configuration file
~/.viresclient.ini
.- Downloads are streamed to temporary files instead of being held in memory.
- Any size request is now supported. Large requests are automatically chunked up.
- Added download progress bar indicating size in MB.
- xarray added as a dependency and
.as_xarray()
method added.