Skip to content

Releases: pysat/pysat

v3.2.0

27 Mar 22:15
7bd8a23
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.2.0 adds multiple new features for data support, including custom data set concatenation and improved metadata support.

  • New Features
    • Added tests for warnings, logging messages, and errors in the Instrument
      clean method.
    • Added Instrument loading test with padding and for times without data.
    • Allow Instruments to define custom concat_data methods.
    • Added include kwarg to Instrument.concat_data to expand allowed inputs.
    • Added data kwarg to the Instrument class __getitem__ method and reduced
      memory usage in the load method.
    • Added a hidden method the Instrument class _get_epoch_name_from_data to
      reduce code duplication.
    • Added __delitem__ to Meta and drop to MetaHeader and MetaLabels classes.
    • Modified Meta to allow MetaHeader attribute access directly from Meta.
    • Expanded Meta.drop to traverse attached MetaLabel and MetaHeader data.
    • Added __delitem__ and drop to Instrument and Constellation classes.
    • Added options to customize pysat_ndtesting instrument with sample rate,
      shift in time.
    • Added orbit number to pysat_ndtesting.
    • Added the overwrite kwarg to utils.registry.register_by_module.
    • Added unit tests for all functions in utils.files.
    • Reduced code duplication in the utils.files.parse_fixed_width_filenames
      and utils.files.parse_delimited_filenames functions
    • Added ability to set Meta data using meta['data_var', 'label'] = value
      structure.
    • Added test for loading multiple days of data.
    • Added user-friendly warning when trying to load data when there are
      no files at all to load. Situation currently raises an IndexError.
    • Expanded eval_warnings to support testing against multiple warning types.
  • Bug Fix
    • Fixed utils.files.parse_fixed_width_filenames output for empty file list
    • Updated the parsing functions in utils.files to consider type specifiers
      when identifying appropriate files in a directory
  • Maintenance
    • Update link redirects in docs.
    • Improved Instrument ValueError messages.
    • Updated Constellation.to_inst method definition of coords, using dims
      to combine common dimensions instead.
    • Implement pyproject to manage metadata
    • Updated docstring references to pysat.utils.files in other modules.
    • Remove Sphinx cap
    • Update usage of whitespace and if statements (E275)
    • Remove hacking cap
    • Removed deprecated pysat_testing2d instrument
    • Removed deprecated meta children info
    • Removed deprecated pysat_testing_xarray instrument
    • Removed deprecated pysat_testing2d_xarray instrument
    • Removed deprecated instrument_test_class
    • Removed deprecated malformed_index kwarg in test instrumennts
    • Removed deprecated convert_timestamp_to_datetime function
    • Removed deprecated _test_download_travis flag
    • Removed deprecated freq kwarg from download
    • Removed deprecated use_header kwarg from load and changed default
      behaviour to use_header=True
    • Use temporary directories for files created during test_utils.py
    • Updated code file headers to be consistent and include NRL pub release
    • Added acknowledgements.md which includes full institutional funding list
    • Removed deprecated labels kwarg for pysat.Instrument()
    • Removed deprecated utils.load_netcdf4 method
    • Removed deprecated _filter_netcdf4_metadata method
    • Removed deprecated usage of None for tag and inst_id
    • Removed deprecated kwarg behaviour for 'fname' in to_netCDF4
    • Added verion cap for sphinx_rtd_theme
    • Used line specific noqa statements for imports
    • Add _new_tests flag for packages to ignore select new tests
    • Add CI testing for python 3.12

v3.1.0

31 May 21:20
d8adb05
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.1.0 is a minor release with significant improvements in the base classes and data I/O. This includes improvements in Constellations, data stored in the xarray Dataset format, and saving Instrument data in netCDF files.

[3.1.0] - 2023-05-31

  • New Features
    • Added a utility to ensure two xarray Datasets can be concatonated, and
      incorporated this utility into the Instrument file loading
    • Added unit tests for different file cadences in the Instrument class
    • Added to_inst method to the Constellation class
    • Added export_pysat_info kwarg to to_netcdf routines to select whether
      pysat instrument info is written to files
    • Added Constellation class examples to the docs tutorial
    • Added links to the project standards repository to the docs
    • Improved formatting of custom kwargs when running print on an instrument
    • Added a core utility to update fill values consistently in the data and
      metadata
    • Adapted check_and_make_path to treat an empty path as the current dir
    • Added meta_kwargs attribute and kwarg to Instrument, allowing full custom
      specification of the Meta class on instantiation
    • Expanded MetaLabels type defaults for 'max_val', 'min_val', and 'fill_val'
      to include more common data types
    • Added data_types input to Meta and certain MetaLabels methods, allowing
      the default values to be set to the specified data type when multiple types
      are allowed, ensure these are updated when adding new data to an Instrument
    • Added _update_label_types to MetaLabels, expanding the Python float/int
      types to include all numpy float/int types
    • Added strict_dim_check for loading xarray Datasets through netCDF
    • Added combine_by_coords kwarg to io.load_netcdf for use on multi-file
      xarray Datasets
  • Deprecations
    • Deprecated the Instrument kwarg labels in favor of meta_kwargs and
      replaced the meta_labels attribute with the meta_kwargs attribute
    • Deprecated the labels keyword arg in favor of meta_kwargs in the
      netCDF I/O functions and Instrument sub-module
    • Deprecated the malformed_index kwarg in the test instruments. This is
      replaced by non_monotonic_index and non_unique_index
  • Bug Fix
    • Allow pysat.instruments.methods.general.list_files to handle file
      cadences other than daily or monthly
    • Allow equality assessments if optional kwargs are used in Instrument
    • Fixed an issue with setting single variables in xarray coords (#988)
    • Fixed pysat.Instrument.bounds to handle all input types for step
      and width regardless of start and stop time. Also fixed
      seasonal bounds specified using file names.
    • Fixed pysat.utils.io.apply_table_translation_to_file check for duplicates
      in the meta translation table
    • Fixed an issue when passing dates through load_remote_files (#1022)
    • Fixed a bug where data may not have any times, but still not be empty
    • Fixed a bug where metadata with values of None are assigned as useful
      attributes when attaching metadata to xarray objects
    • Fixed a bug where a multi_file_day non-monotonic xarray index failed to
      merge datasets (#1005)
    • Fixed a bug in testing for setting multiple optional load kwargs (#1097)
    • Fixed a bug when setting xarray data as a tuple
    • Fixed a bug when loading constellations for partially empty instrument lists
    • Fixed a bug when cleaning up temporary directories on windows during testing
    • Fixed a bug in Instrument loading with a pad, where RangeIndex slicing no
      longer works on an empty series
  • Maintenance
    • Added roadmap to readthedocs
    • Improved the documentation in pysat.utils.files
    • Clarified documentation and tests for name slicing support in pandas
    • Clarified documentation for adding new instruments
    • Fixed broken links in docs
    • Updated docstring header underline lengths and addressed documentation
      build errors and warnings
    • Additional unit tests for data padding when a data index is non-monotonic.
    • Deprecated the malformed_index kwarg in the test instruments. This is
      replaced by non_monotonic_index and non_unique_index
    • Set the instruments.pysat_testing tag='no_download' to return an empty
      pandas DataFrame for load
    • Added constellations.testing_partial, which loads a partially empty
      constellation dataset
    • Reduced default num_samples for constellation test objects
    • Improved consistency in metadata for test instruments

v3.0.6

22 Dec 05:55
b2d3b24
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.6 is a bug fix release to improve compatibility with Python 3.6 and appropriate versions of pandas and xarray.

[3.0.6] - 2022-12-21

  • Bug Fix
    • Ensure pysat tests do not store temporary directory to file
    • Updated links for supported instruments in documentation
  • Deprecations
    • pysat_testing2d_xarray instrument deprecated and replaced by
      pysat_ndtesting
  • Maintenance
    • Updated pytest syntax to remove nose backwards-compatibility
    • Fixed NEP29 compliance
    • Updated Github Actions versions
    • Improved docstrings
    • Fixed a bug where a deprecation warning was thrown incorrectly
    • Add pysatModels to pysat instrument count
    • Update contributing document
    • Added support for testing with python 3.6, updated reported
      minimum supported Python version to 3.6

v3.0.5

11 Oct 20:49
11edb4d
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.5 is a bug fix release, including improved compatibility with pandas v1.5.

[3.0.5] - 2022-10-07

  • Maintenance
    • Update usage of logger throughout code.
    • Update NEP29 minimum CI numpy version to 1.20
  • Bug Fix
    • Updated meta.py so that internal assignment of None to children is not
      converted to NaN when using pandas>=1.5.0

v3.0.4

31 Aug 20:24
79be7ae
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.4 is a bug fix release that improves compatibility with xarray when accessing data via slices.

Changelog


  • Maintenance
    • Removed version cap on xarray
  • Bug Fix
    • Improved compatibility with xarray 2022.06 when accessing data via slices
    • Fixed a bug for fractional seconds in methods.testing.generate_times.

v3.0.3

28 Jul 17:17
3b83c7b
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.3 is a maintenance release that includes a temporary version limit on xarray due to changes in indexing in v2022.06.0.

Changelog

  • Maintenance
    • Added temporary version limit to xarray due to change in indexing

v3.0.2

22 Jul 14:56
b1834eb
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.2 is primarily intended as a bugfix and maintenance release.
However, this release does include expanded support for writing and reading netCDF4 files for user customizable file standards.

Changelog

  • New Features
    • Added the property empty_partial to the Constellation class
    • Added the option to apply custom functions at the Constellation or
      Instrument level within the Constellation class
    • Added option to load Constellation for registered Instruments using lists
      of platforms, names, tags, and/or inst_ids, which are new attributes
    • Added hidden Constellation methods to determine unique attribute elements
      and set Instrument attributes across all instruments
    • Added hidden Constellation method to sequentially call Instrument methods
    • Extended Constellation unit tests
    • Added more quality checks to the Constellation initialization
    • Standardized Instrument instantiation to always define inst_module
    • Extended testing options for pysat.utils.testing functions
    • Added start_time keyword for test instruments
    • Added max_latitude keyword for non-model test instruments
    • Added _test_download_ci as a standard attribute for pysat.Instrument
    • Added a testing model similar to TIEGCM to
      pysat.instruments.pysat_testmodel as tag='pressure_levels'.
    • Added the capability to test loading with optional kwargs through
      _test_load_opt instrument attribute
    • Added rename and add_epoch_metadata methods to the Meta class
    • Added I/O utilities to the utility module, extracting existing methods
      from the Instrument class and core utility module.
    • Added a warning evaluation and directory creation functions to
      pysat.utils.testing.
    • Added the ability to only download new files if remote file listing
      capabilities are not available for the Instrument.
    • Added kwargs for epoch units and origin in pysat.utils.io.load_netcdf.
    • Vectorized Meta.var_case_name and Meta.attr_case_name to support
      list of str as input as well as str.
    • Added a time function to calculate decimal year from datetime.
    • Allow Instrument.rename to take a fuction or mapping dict as input,
      after adapting routine to use Meta.rename
    • Added an update method and type evaluation method to MetaLabels.
    • Added a new MetaHeader class for holding global metadata.
    • Added a pysat Instrument for loading pysat-written NetCDF4 files.
    • Allowed MetaLabels to be expanded through setting new Meta data values.
    • Added support for user variables when parsing template filenames
      in pysat.utils.files.
    • Improved robustness of parsing delimited files.
    • Updated pysat.Instrument.pandas_format so that changes to setting
      are immediately reflected by changes to Instrument object.
    • Added a test function for bad class/function/method input to reduce
      duplicate code and improve message test combliance
    • Added support for filtering basic netCDF4 metadata when loading via
      pysat.utils.io.load_netcdf.
    • Added support for user developed functions to filter metadata as it
      loaded from disk but before assignment to a pysat.Meta instance.
    • Added meta.to_dict to support creating more compliant
      netCDF files.
    • Added meta.default_to_netcdf_translation_table,
      default_from_netcdf_translation_table and
      apply_table_translation to pysat.utils.io to support
      improved compatability of pysat netcdf files without user code
      changes.
    • Added drop_meta_labels kwarg to pysat.utils.io.load_netcdf to
      support easy removal of unwanted metadata during loading.
    • Added support for meta_processor in pysat.utils.io.load_netcdf
      and pysat.utils.io.inst_to_netcdf enabling developers to easily modify
      metadata before it is loaded from/written to storage.
    • Intermediate missing directories are now created as needed when writing
      files using pysat.utils.io.inst_to_netcdf.
    • Condensed code present in both pandas and xarray into
      pysat.utils.io.meta_array_expander.
    • Non-default Meta.labels are now retained by Instrument if defined by
      underlying support module.
    • Made test data more consistent across pysat testing instruments.
    • Added pysat.Instrument.vars_no_time function to return data variables
      excluding the main time index.
    • Added support for additional metdata and other file handling options
      to general 'pysat', 'netcdf' instrument.
    • Added keyword decode_times to flag using xarray or pysat processing
      of times when loading a file via pysat.utils.io.load_netcdf.
    • Added pysat.utils.io.xarray_all_vars which returns a list of all variables,
      coordinates, and dimensions.
    • Added more volume units to pysat.utils.scale_units
    • Added assert_isinstance and assert_hasattr to pysat.utils.testing
  • Deprecations
    • Removed freq as a standard kwarg for pysat.Instruments.download
    • Deprecated _test_download_travis as a standard attribute for
      pysat.Instrument. The function is replaced by _test_download_ci
    • Deprecated
      pysat.tests.instrument_test_class.initialize_test_inst_and_date,
      which is moved to pysat.tests.classes.cls_instrument_library.
    • Deprecated pysat.tests.instrument_test_class.InstTestClass, which is
      replaced by pysat.tests.classes.cls_instrument_library.InstLibTests.
    • Deprecated pysat.Instrument._filter_netcdf4_metadata and replaced it
      with pysat.utils.io.filter_netcdf4_metadata.
    • Changed fname from a kwarg to an arg in pysat.Instruments.to_netcdf4
    • Deprecated support for 2D pandas datasets
    • Deprecated pysat.instruments.pysat_testing_xarray
    • Deprecated usage of higher order metadata
    • Deprecated pysat.Instrument.generic_meta_translator which is replaced
      by pysat.utils.io.apply_table_translation_to_file.
    • Deprecated the general instrument method, convert_timestamp_to_datetime,
      which is replaced by new functionality in load_netcdf.
  • Documentation
    • Moved logo to 'docs\images'
    • Improved consistency of headers throughout documentation
    • Added more reference labels to documentation
    • Implemented use of Python formatting in documentation examples
    • Fixed bad section labels in docstrings
    • Fixed noindex warning
    • Fixed redirecting links
    • Made changelog style and line length consistent
    • Added a paragraph describing how to access Instrument sub-module
      docstrings from an instantiated Instrument in an interactive session
    • Updated examples in docstrings
    • Improved docstring style and consistency
    • Added docstring linting via flake-docstrings and hacking to CI tests
    • Added clarification to the tutorials
    • Added limitations to the listify docstring
    • Updated image link in README.md to display in more environments.
    • Updated tag and inst_id keywords and docstrings to new standards
    • Added example for version checking when writing tests for packages that
      rely on pysat
  • Bug Fix
    • Fixed default MetaLabel specification in pysat.utils.load_netcdf4
    • Fixed parse_delimited_filename output consistency and ability to handle
      leading and trailing non-parsed text in filenames (e.g., file extensions)
    • Added decode_timedelta=False for loading xarray from netcdf4 (#823)
    • Closed links to open files when loading data through xarray (#887)
    • Fixed an issue in generating filenames for pysat.Instrument._iter_list
    • Allow tag and inst_id to be specified as None (#892)
    • Fixed a bug in pysat.utils.time.create_datetime_index (#906)
    • Fixed a bug in pysat.utils.scale_units and ensured '/cc' compatibility.
    • Added a warning if inst_module and platform/name are used to
      instantiate an instrument (#850). In case of this, inst_module takes
      priority.
    • Fixed a bug when instantiating empty pysat.Instrument() (#851)
    • Fixed IndexError encountered when loading a multi-day file by filename with
      no data for that day.
    • Added logging output when metadata not assigned due to a lack of
      instrument data (#924)
    • Fixed a bug where empty check for xarray instruments fail when time not
      present. (#922)
    • Improved feedback when users try to set meta with an array.
    • Fixed a bug that expected special treatment by Instrument.data type in
      utils.coords.update_longitude
    • Fixed pysat_testmodel Instrument longitude range
    • Corrected link to testing badge in README.md
    • from_os now always returns a sorted Series.
    • Moved function call for Instrument modules init function to end of
      pysat.Instrument instantiation to ensure Instrument is complete when passed
      to init.
    • Refactored pysat.Instrument.generic_meta_translator to use
      pysat.Meta.to_dict and the latest metadata label standards.
    • Prevent stale data paths stored by pysat from being reassigned if
      path is no longer in pysat.params['data_dirs'].
    • Added missing metadata in testing instruments.
    • Corrected identification of string data for xarray in
      pysat.Instrument._get_data_info.
  • Maintenance
    • Added unit tests for deprecation warnings related to io_utils reorg.
    • Added missing unit tests for pysat.utils.time
    • Added missing unit tests for pysat.utils.file.parse_delimited_filename
    • Streamlined unit tests for test_orbits
    • Moved metadata generation for test instruments to methods.testing
    • Added integration tests for test instrument kwargs
    • Updated class declaration to be consistent with python 3 standards
    • Update usage of caplog and capsys in unit tests
    • Reorg...
Read more

v3.0.1

28 Jul 17:45
4d12a09
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.1 is primarily intended as a bugfix and maintenance release.
Most significantly, pysat passes online unit tests on the Windows platform.

Changelog

  • New Features
    • Added a routine for loading CSV files into a pandas DataFrame from a list
      of filenames.
    • Added check for supported tag and inst_id at pysat.Instrument
      instantiation. (#784)
    • Expanded Constellation utility by:
      • Adding common properties: empty, index, date, today, yesterday,
        tomorrow, and variables (#764)
      • Improving the printed output to inform user of the Constellation contents
        (#764)
      • Added methods to download data and create a common time index. (#764)
    • Added utils.listify, a function that returns a list of whatever is input.
      (#766)
    • Added a warning for download requests that result in an empty date range.
  • Deprecations
  • Documentation
    • Added missing information about date formatting to file listing docstrings.
    • Added example for registering external instrument support (#837)
  • Bug Fix
    • Changed pysat.Instruments.orbits iteration to return a copy of the
      Instrument rather than the Instrument itself. Provides robustness against
      garbage collection. (#770)
    • Improved error messages for cases where slice of data may not exist (#761)
    • Improved windows compatibility (#57, #790)
    • Fixed Instrument.load bug that prevented use of instrument specific kwargs
    • Added pytest as a package requirement (#819)
    • Fixed pysat.utils.listify for empty list inputs (#830)
  • Maintenance
    • Changed pysat.Instrument from treating all support functions as partial
      functions to retaining the original form provided by developer
    • Migrates CI testing to Github Actions
    • Improved maintenance of documentation build
    • Added a check for use of reserved keywords at instantiation
    • Tests compatible with pysatSpaceWeather 0.0.4 (#782)
    • Improved pandas 1.3.0 compliance

v3.0.0

02 Apr 17:30
900dead
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v3.0.0 release is a substantive release intended to support pysat in operational environments as well as expand community oriented capabilities for space science data analysis. Core features have been retained within pysat while supporting instruments and analysis codes have been moved to individual packages. While v3.0.0 is not backwards compatible due to a reorganization of some functions and the data storage structure, the user interface is largely unchanged.

Changelog

[3.0.0] - 2021-04-01

  • New Features
    • Added registry module for registering custom external instruments
    • Added Meta.mutable flag to control attribute mutability
    • Added MetaLabels class to manage metadata labeling
    • Unit tests are now pytest compatible, use parametrize, and have improved
      messages when failures are encountered
    • Added altitudes to test instruments
    • New flags added to instruments to streamline unit testing:
      _test_download, _test_download_travis, _password_req
    • strict_time_flag now defaults to True
    • Use of start/stop notation in remote_file_list
    • Added variable rename method to Instrument object (#91)
    • Added support for loading more than one day/file (#56)
    • Added support for iterating over a dataset a with a loaded data width and
      stepsize larger than a single day/file
    • Added check for inconsistent inputs when loading data via Instrument
    • Added file locking for thread-safe behavior (#304)
    • Allow the Instrument object to be initialized with optional kwargs for any
      of the standard methods (not just load).
    • Added support for 'cycle' in addition to 'version' and 'revision' for
      filename conventions.
    • Integrated Custom class directly into Instrument to support mixed use
      of Constellation/Instrument objects in code (#540)
    • Made underlying custom data structures visible (#529)
    • Updated data_mode method name to custom_attach for the Constellation
      object (#540)
    • Added a display utility for discovering pysat Instrument data sets.
    • Added testing utility functions.
    • Added support for multiple pysat data directories
    • Reorganized .pysat directory to store instrument information under
      .pysat/instruments and .pysat/instruments/archive
    • Added pysat.params, a central location to store and modify pysat default
      parameters. File stored at .pysat/pysat_settings.json
    • Added warn_empty_file_list to pysat.params to provide a warning if no
      Instrument files are found. Default is False.
    • Updated default pysat directory organization template
    • Added support for dual specification of Instruments to include in a
      Constellation
    • Added function to transition pysat managed data files to a user
      provided template.
    • Allow directory_format input to Instrument to be a function
    • Adopted standard for bounds. stop is an inclusive bound, end is
      exclusive
    • Added support for SLT calculations outside [0, 24)
    • Added support for continuous SLT calculations when loading multiple days
    • Instrument support functions now respond to local changes in
      Instrument.kwargs
    • Added support for pysat.Instrument, Files, and Orbits equality comparisons
    • Added .copy function to Instrument, Files, and Orbits classes
    • Updated Parameters to ensure paths provided for pysat.params['data_dirs'] are created if they don't
      already exist
  • Deprecations
    • Migraged instruments to pysatMadrigal, pysatNASA, pysatSpaceWeather,
      pysatIncubator, pysatModels, pysatCDAAC, and pysatMissions
    • Migrated file methods to pysat.utils.files (#336)
    • Renamed sat_id Instrument keyword argument to inst_id
    • Removed ssnl
    • Removed utils.stats
    • Removed model_utils
    • Removed deprecated pandas.Panel
    • Import datetime class from datetime module, not pandas
    • Import DataFrame and Series classes directly from pandas, not pysat
    • Removed coords.scale_units
    • Removed time.season_date_range
    • Moved methods.nasa_cdaweb.list_files to methods.general
    • DeprecationWarning for strict_time_flag only triggered if sloppy data is
      found
    • Changed the custom function attachment input to allow keyword argument use
      when additional function input is required
    • Removed python 2.7 syntax
    • Removed utils.coords.geodetic_to_geocentric
    • Removed utils.coords.geodetic_to_geocentric_horizontal
    • Removed utils.coords.spherical_to_cartesian
    • Removed utils.coords.global_to_local_cartesian
    • Removed utils.coords.local_horizontal_to_global_geo
    • Addressed several Warnings raised by incorrect use of dependent packages
    • Deprecated use of inst_id for number of simulated samples for test
      instruments
    • Removed writing of custom Meta attributes when producing netCDF4 files
    • Removed unneeded description.txt file, using README instead
    • Changed pysat.instruments.methods.general.list_files kwarg
      fake_monthly_files_from_daily to file_cadence
    • Changed name of Instrument method default to preprocess
    • Removed pysat.data_dir. Information now at pysat.params['data_dirs'].
    • Moved pysat.Instrument._filter_datetime_input to
      pysat.utils.time.filter_datetime_input
    • Deprecated pysat.utils.set_data_dir
    • Changed name kwarg in Constellation to const_module
    • Removed unnecessary Instrument attribute labels
    • Removed unnecessary Instrument kwargs
    • Removed the Custom class, incorporating it into Instrument
    • Removed deprecated calls to 'modify' type custom functions
  • Documentation
    • Added info on how to register new instruments
    • Fixed description of tag and inst_id behaviour in testing instruments
    • Added a tutorial for developers of instrument libraries for pysat
    • Updated instrument templates
    • Added .zenodo.json file, to improve specification of authors in citation
    • Improved __str__ and __repr__ functions for basic classes
    • Improved docstring readability and consistency
    • Added Travis-CI testing for the documentation
    • Added a style guide for developers
    • Updated loading data flow figure
    • Scrubbed the documentation, ensuring examples, tutorials, and descriptions
      match the current implementation and code structure
  • Bug Fix
    • Updated Instrument.concat_func to behave as described in the docstring
    • Fixed custom instrument attribute persistence upon load
    • Improved string handling robustness when writing netCDF4 files in Python 3
    • Improved pandas 1.1.0 compatibility in tests
    • Fixed coupling of two_digit_year_break keyword to underlying method in
      methods.general.list_files
    • Fixed additional file date range for monthly data with gaps
    • Fixed custom Meta attributes removal when transferred to instrument (#615)
    • Corrected iteration over Instrument within list comprehension
    • Removed unused input arguments
    • Corrects Instrument today, yesterday, and tomorrow methods by implementing
      datetime.datetime.utcnow
    • Ensured pysat.Meta instances are immutable at Instrument instantiation
    • Removed weak reference back to Instrument within Files class
    • Fixed access of xarray data with more than one dimension (#471)
    • Improved robustness of eval(inst.__repr__()) (#636)
    • Fixed calc_solar_local_time for data sets with longitude coordinates
    • Fixed .copy() when pysat.Instrument instantiated with inst_module (#728)
    • Modified storage of Instrument.kwargs to include all methods so that
      eval(Instrument.__repr__()) works in more cases
    • Modified storage of Instrument.kwargs to only include user supplied keywords
    • Improved robustness when working with file dates that aren't centered on
      midnight
    • Added basic valid path check to pysat.utils.files.check_and_make_path
  • Maintenance
    • nose dependency removed from unit tests
    • Specified dtype for empty pandas.Series for forward compatibility
    • Removed wildcard imports, relative imports
    • Include flake8 check as part of testing suites
    • Improved unit testing coverage of instrument functions and instrument object
    • Added tests for Instrument attributes acknowledgements and references
    • Removed implicit conversion to integers in
      methods.general.convert_timestamp_to_datetime
    • Simplified internal logic in Instrument class
    • Moved setup metadata to setup.cfg
    • Improved instrument tests for files
    • Used dt.timedelta instead of pds.DateOffSet where possible
    • Reduced code duplication throughout package
    • Reduced unused code snippets throughout
    • Ensured download start time is used
    • Condensed testing support functions into methods/testing.py
    • Fixed a bug with usage of numpy.dtype for numpy 1.20 compatibility
    • Updated usage of pds.index.to_native_types() to pds.index.astype(str)
      for pandas 2.0 compatibility (#737)
    • Check type as float rather than np.float for future numpy compatibility
      (#740)
    • Verified usage of inst.loc[slice, keyword] will continue to work in
      pandas 2.0 (#738)

v2.3.0

01 Apr 17:10
391183b
Compare
Choose a tag to compare

The Python Satellite Data Analysis Toolkit (pysat) v2.3.0 release is intended
to be the last release of the v2.x series and the last release to
include support for Python 2.x. pysat v2.3.0 primarily features
DeprecationWarnings for pysat functions that are changing as part
of the 3.0.0 release.

[2.3.0] - 2021-04-01

  • Allow use of new Instrument kwarg, inst_id (replaces sat_id)
  • Allow limited use of new list_files kwarg, file_cadance
  • Added support for pysat.params['data_dirs'], the replacement
    for pysat.data_dir in pysat 3.0.0
  • Deprecation warnings added to:
    • Instrument class (old meta labels, sat_id, default, multi_file_day,
      manual_org, and _filter_datetime_input, data_dir)
    • pysat.instruments.methods.general.list_files kwarg
      fake_montly_files_from_daily
    • pysat.instruments.methods.testing.generate_times kwarg
      sat_id
    • Constellation class kwarg name
    • Custom class
    • functions from _files class
    • functions from ssnl module
    • Instrument modules:
      • the pysatCDAAC: cosmic_gps
      • the pysatIncubator: champ_star, demeter_iap, superdarn_grdex,
        supermag_magnetometer
      • the pysatMadrigal: jro_isr, dmsp_ivm
      • the pysatSpaceWeather: sw_dst, sw_f107, sw_kp
      • the pysatModels: ucar_tiegcm
      • the pysatNASA: cnofs_ivm, cnofs_plp, cnofs_vefi, de2_lang, de2_nacs,
        de2_rpa, de2_wats, icon_euv, icon_fuv, icon_ivm, icon_might, iss_fpmu,
        omni_hro, rocsat1_ivm, sport_ivm, timed_saber, timed_see
    • The usage of a numeric string for sat_id to specify number of points
      in test instruments
    • SpaceWeather, Incubator (DEMETER), Madrigal, CDAWeb, and ICON instrument
      methods
    • The DE2 and ICON Constellation objects
    • pysat.utils.set_data_dir
  • Documentation
    • Updated docstrings with deprecation notes
  • Bug Fix
    • Closes files after download in NASA CDAWeb methods
    • Updated the ICON constellation object to reflect new instrument standards
  • Added version cap for numpy