Release notes#

Change log#

Changes from 0.11.4 to 0.11.5#

Changes from 0.11.3 to 0.11.4#

  • Support for (L1B) FAST data

Changes from 0.11.2 to 0.11.3#

Changes from 0.11.1 to 0.11.2#

  • Fix support for cdflib version 1.0

Changes from 0.11.0 to 0.11.1#

  • 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

Changes from 0.10.3 to 0.11.0#

Changes from 0.10.2 to 0.10.3#

  • Added new collections:

    • SW_OPER_EFIxTIE_2_ (type EFI_TIE: ion temperatrues)

    • SW_EXPT_EFIx_TCT02 & SW_EXPT_EFIx_TCT16 (types EFI_TCT02, EFI_TCT16: cross-track ion flows)

Changes from 0.10.1 to 0.10.2#

  • Removed upper version limits for dependencies

Changes from 0.10.0 to 0.10.1#

  • Update Jinja2 dependency

Changes from 0.9.1 to 0.10.0#

Changes from 0.9.0 to 0.9.1#

Changes from 0.8.0 to 0.9.0#

  • 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)

  • 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

Changes from 0.7.2 to 0.8.0#

  • Added support for:

    • VOBS products (Virtual Observatories), e.g. collection SW_OPER_VOBS_1M_2_

    • AUX_OBSH products (hourly ground observatory data)

  • Added viresclient.SwarmRequest.available_times() to query temporal availability of any collection

  • Added new reshape=True kwarg to 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 and SiteCode 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 as xarray.Dataset, for compatibility with xarray 0.17 when saving as netcdf

Changes from 0.7.1 to 0.7.2#

  • Fix usage of cdflib v0.3.20

Changes from 0.7.0 to 0.7.1#

  • Fix use of expand in .as_dataframe() for AUX_OBS

Changes from 0.6.2 to 0.7.0#

Changes from 0.6.1 to 0.6.2#

  • Added automatic initialisation of access token when running on VRE

  • Added new composed model aliases (shortcuts)

Changes from 0.6.0 to 0.6.1#

  • Fix to support the new EEFxTMS_2F baseline 02:

    • Product now available for Swarm Charlie (C)

    • EEF unit changed from V/m to mV/m

    • New measurement, EEJ

    • Variable renamed: flag to Flag

Changes from 0.5.0 to 0.6.0#

  • 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)

Changes from 0.4.3 to 0.5.0#

  • IGRF model series have changed name: IGRF-12 is dropped in favour of IGRF 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)

Changes from 0.4.2 to 0.4.3#

  • 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 the NEC dimension name.

  • CHAOS model series have changed name: CHAOS-6-Core etc. is dropped for CHAOS-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).

Changes from 0.4.1 to 0.4.2#

  • Fixed orbit number queries (get_orbit_number)

  • Added model sources to model info

Changes from 0.4.0 to 0.4.1#

  • 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

Changes from 0.3.0 to 0.4.0#

  • 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 viresclient.ReturnedData() (i.e. data) and as metadata (.attrs) in the Dataset 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 to F10_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 is expand=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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^-

Changes from v0.2.4 to 0.2.5 ^^^^^^^^^^^^^^^^^^^^^^^^^^^-

  • EFI collections have changed from SW_OPER_EFIx_PL_1B to SW_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 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 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 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 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 of ClientRequest.

  • kwarg subsample changed to sampling_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.