Python package for earth-observing satellite data processing

Overview

Satpy

https://github.com/pytroll/satpy/workflows/CI/badge.svg?branch=master https://coveralls.io/repos/github/pytroll/satpy/badge.svg?branch=master

The Satpy package is a python library for reading and manipulating meteorological remote sensing data and writing it to various image and data file formats. Satpy comes with the ability to make various RGB composites directly from satellite instrument channel data or higher level processing output. The pyresample package is used to resample data to different uniform areas or grids.

The documentation is available at http://satpy.readthedocs.org/.

Installation

Satpy can be installed from PyPI with pip:

pip install satpy

It is also available from conda-forge for conda installations:

conda install -c conda-forge satpy

Code of Conduct

Satpy follows the same code of conduct as the PyTroll project. For reference it is copied to this repository in CODE_OF_CONDUCT.md.

As stated in the PyTroll home page, this code of conduct applies to the project space (GitHub) as well as the public space online and offline when an individual is representing the project or the community. Online examples of this include the PyTroll Slack team, mailing list, and the PyTroll twitter account. This code of conduct also applies to in-person situations like PyTroll Contributor Weeks (PCW), conference meet-ups, or any other time when the project is being represented.

Any violations of this code of conduct will be handled by the core maintainers of the project including David Hoese, Martin Raspaud, and Adam Dybbroe. If you wish to report one of the maintainers for a violation and are not comfortable with them seeing it, please contact one or more of the other maintainers to report the violation. Responses to violations will be determined by the maintainers and may include one or more of the following:

  • Verbal warning
  • Ask for public apology
  • Temporary or permanent ban from in-person events
  • Temporary or permanent ban from online communication (Slack, mailing list, etc)

For details see the official CODE_OF_CONDUCT.md.

Comments
  • Plotting day night composite satellite image

    Plotting day night composite satellite image

    Hi I would like to know what is the proper syntax for plotting day night composite satellite image. My intention is to first create a day night composite and then view the day night composite image of earth. Then from the earth image I want to further crop it to a specific region. But I keep getting the error as seen below:

    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-6-96b341561d12> in <module>
    ----> 1 new_scn = scn.resample(resampler='native')
    
    C:\ProgramData\anaconda3\envs\satpy\lib\site-packages\satpy\scene.py in resample(self, destination, datasets, generate, unload, resampler, reduce_data, **resample_kwargs)
        808         """
        809         if destination is None:
    --> 810             destination = self.finest_area(datasets)
        811         new_scn = self.copy(datasets=datasets)
        812         self._resampled_scene(new_scn, destination, resampler=resampler,
    
    C:\ProgramData\anaconda3\envs\satpy\lib\site-packages\satpy\scene.py in finest_area(self, datasets)
        233 
        234         """
    --> 235         return self._compare_areas(datasets=datasets, compare_func=max)
        236 
        237     def max_area(self, datasets=None):
    
    C:\ProgramData\anaconda3\envs\satpy\lib\site-packages\satpy\scene.py in _compare_areas(self, datasets, compare_func)
        211             first_crs = areas[0].crs
        212             if not all(ad.crs == first_crs for ad in areas[1:]):
    --> 213                 raise ValueError("Can't compare areas with different "
        214                                  "projections.")
        215 
    
    ValueError: Can't compare areas with different projections.
    
    

    This is my code so far:

    from glob import glob
    
    from satpy.scene import Scene
    from satpy import find_files_and_readers
    from datetime import datetime
    from glob import glob
    
    %matplotlib notebook
    import matplotlib.pyplot as plt
    import cartopy
    import cartopy.crs as ccrs
    from cartopy._crs import (CRS, Geodetic, Globe, PROJ4_VERSION,
                              WGS84_SEMIMAJOR_AXIS, WGS84_SEMIMINOR_AXIS)
    from satpy.writers import get_enhanced_image
    from satpy import Scene
    
    from satpy.composites import DayNightCompositor, satpy
    
    filenames = glob('C:/Users/binis/OneDrive/Desktop/To_Binish/ftp_h8_hsd_2pm/16_bands/*20210417_0200*.DAT')
    len(filenames)
    
    scn = Scene(reader='ahi_hsd', filenames=filenames)
    
    scn.load(['true_color'])
    scn.load(['true_color_with_night_ir'])
    
    new_scn = scn.resample(resampler='native')
    
    compositor = satpy.composites.DayNightCompositor("day_night_true_color")
    composite = compositor([new_scn["true_color"], new_scn["true_color_with_night_ir"]])
    img = satpy.writers.to_image(composite)
    
    img.save(writer="simple_image",
                            
                           filename="Singapore on 17-4-21 0200 Time-dayNight 
                             composite using area definition latest.png",
                           base_dir="C:/Users/binis/OneDrive/Desktop/To_Binish/")
    
    

    Appreciate all the help I can get :)

    question 
    opened by willows-1 79
  • Add parallax correction via new `ParallaxCorrectionModifier`

    Add parallax correction via new `ParallaxCorrectionModifier`

    Add a parallax correction to Satpy.

    This is a team effort based on work by Simon Proud (@simonrp84), Xin Zhang (@zxdawn), Ulrich Hamann (@uhamann), Jussi Leinonen (@jleinonen), myself, and others.

    We have made good progress during the Pytroll Contributor Week 29 November - 3 December 2021. More work was done in December 2021 and January 2022.

    • [x] Closes #1845
    • [x] Tests added
    • [x] Fully documented
    • [x] Add your name to AUTHORS.md if not there already
    • [x] Add more tests where
      • source and target resolutions are very different
      • areas are only partly overlapping
      • areas are not overlapping at all
      • areas are the same
    • [x] get reliable reference values for unit tests where this value is not trivial
    • [x] Investigate if other resamplers resolve the problems at poles and antimeridian
    • [x] Make resampler and search radius configurable
    • [x] Add easy to use modifier interface
    • [x] Get orbital parameters from somewhere else than the metadata of the CTH dataset. This information is not included with nwcsaf-geo and arguably should come from the dataset to be corrected, not from the CTH (which theoretically doesn't even need to come from the same satellite). See https://github.com/pytroll/satpy/pull/1904#issuecomment-1010037925.
    • [x] Make sure heights are in metre
    • [x] Add test to cover the case where clouds are moved out of the area of interest completely.
    • [x] Improve speed (although there are no formal performance tests yet, small tests show the correction is very slow).
    • [x] Fix bug when loading corrected and uncorrected datasets simultaneously.
    • [x] Check why brightness is different for parallax corrected image and fix this.
    • [x] Make internal resampling of CTH more flexible (rather than hardcoding method and parameters)
    • [x] Make resampling in modifier more flexible, actually using the provided parameters.

    Deferred:

    • [ ] Not critical: implement checks for warning or error if areas do not or only partially overlap. This relies on https://github.com/pytroll/pyresample/issues/329 to be fixed first. Without those checks, applying parallax correction may yield unexpected results.
    • [x] Add diagnostic tool to get the displacement (distance & direction)
    • [ ] Expose and document interface to intermediate swathdefinition as public API
    • [ ] Add test for when parallax correction shifts a cloud across the antimeridian or pole (or document that this is not supported)
    • [ ] Allow explicitly passing satellite location for datasets where this information is not included (either when no information provided at all, or when estimate based on TLE and skyfield is undesirable)
    • [ ] Allow obtaining satellite location or viewing angles from the metadata not only of CTH but also of other datasets. This would require those to be passed to the modifier as optional prerequisites.
    • [ ] Add performance tests (in benchmark directory?) with real scenes (could be a different PR)
      • [x] Check dask-awareness
      • [ ] Check/control for what area parallax is calculated when scene is resampled, but modifier interface is used
      • [x] Confirm that dask reuses calculations, such as when multiple channels are corrected
      • [ ] Check if further optimisations are needed for multiple channels, such as avoiding recalculating the dask graphs
    enhancement 
    opened by gerritholl 69
  • Add `get_area_def` to cf reader

    Add `get_area_def` to cf reader

    This adds add area definition support for the cf reader. I fixed the tests and added a test area in geos projection as well as some preliminary assertions for testing the area. I think the tests should be improved and extended to cover other areas. Currently the extent assertion is failing because of https://github.com/pytroll/pyresample/issues/355.

    • [x] Closes #1672
    • [x] Tests added
    enhancement component:readers 
    opened by BENR0 49
  • MTG: get projection and extent information from file

    MTG: get projection and extent information from file

    In the MTG FCI FDHSI L1C reader, get the projection coordinates and extent information from file. For the projection coordinates, get those from /data/mtg_geos_projection rather than from /state/processor, as is consistent with the documentation. The extent information was previously hardcoded but now obtained from data/channel/measured/x and data/channel/measured/y, which contain this information in radians. This commit fixes #840 although there are still some issues with the resulting image that need to be resolved.

    • [x] Closes #840
    • [x] Tests added
    • [x] Tests passed
    • [x] Passes flake8 satpy
    • [x] Fully documented
    • [x] Add your name to AUTHORS.md if not there already
    enhancement component:readers 
    opened by gerritholl 48
  • Cropping a country from an earth image using latitude and longitude coordinate

    Cropping a country from an earth image using latitude and longitude coordinate

    Hi, I would like to know how can I crop a country from an earth image using latitude and longitude coordinate? I pasted a code below and I am getting the error: "TypeError: Plotting requires coordinates to be numeric, boolean, or dates of type numpy.datetime64, datetime.datetime, cftime.datetime or pandas.Interval. Received data of type object instead." Another error I got was "ValueError: the first argument to .sel must be a dictionary". Appreciate all the help I can get ! This is my code so far:

    import pyproj as proj
    
    input_lon, input_lat = 103.851959,1.290270
    
    # setup projections
    crs_wgs = proj.Proj(init='epsg:4326') 
    crs_bng = proj.Proj(init='epsg:27700') 
    
    # then cast geographic coordinate pair to the projected system
    x, y = proj.transform(crs_wgs, crs_bng, input_lon, input_lat)
    
    #Slicing singapore from earth image using coordinates
    
    crop = scn[my_channel].sel(x, y)
    
    #crop = scn[my_channel].sel(latitude= 1.290270, longitude= 103.851959)
    
    crop
    plt.figure()  # create a new figure
    crop.plot.imshow() 
    plt.title("Map of country ")
    
    question 
    opened by willows-1 44
  • AHI HRIT reader has gotten slower

    AHI HRIT reader has gotten slower

    Describe the bug Compared to older versions of Satpy, the ahi_hrit reader seems to have gotten very much slower.

    To Reproduce

    1. Create an environment with Satpy 0.19.1.
    2. Create an environment with Satpy 0.23.0.
    3. Compare the timings creating the same set of composites, e.g. by running the below script and composite definition. The built-in composite needs to be overridden, as it isn't consistent over these versions.
    #!/usr/bin/env python
    
    import glob
    import os
    os.environ['PYTROLL_CHUNK_SIZE'] = "1024"
    os.environ['DASK_NUM_WORKERS'] = "2"
    os.environ['OMP_NUM_THREADS'] = "1"
    import time
    
    from satpy import Scene
    
    
    def main():
        fnames = glob.glob(
            "/home/lahtinep/data/satellite/geo/himawari-8/IMG*20201001070*")
        comps = ["truecolor",]
        glbl = Scene(reader='ahi_hrit', filenames=fnames)
        glbl.load(comps)
        glbl.save_datasets(base_dir='/tmp/')
    
    
    if __name__ == "__main__":
        tic = time.time()
        main()
        print("Elapsed time:", time.time() - tic)
    

    in $PPP_CONFIG_DIR/composites/ahi.yaml

      truecolor:
        compositor: !!python/name:satpy.composites.SelfSharpenedRGB
        prerequisites:
        - name: B03
          modifiers: [sunz_corrected, rayleigh_corrected]
        - name: green
        - name: B01
          modifiers: [sunz_corrected, rayleigh_corrected]
        high_resolution_band: red
        standard_name: truecolor
    

    in $PPP_CONFIG_DIR/enhancements/ahi.yaml

      truecolor:
        standard_name: truecolor
        operations:
        - name: cira_stretch
          method: !!python/name:satpy.enhancements.cira_stretch
    

    Expected behavior Similar timings for the old and new versions. The other chains I've upgraded over the same versions have actually gotten faster. For the full set of composites I got processing times (via Trollflow) of around 10 minutes. With the new version(s) the process crashes around 28 minutes when the memory runs out.

    Actual results For Satpy 0.19.1: 49.9 s For Satpy 0.23.0: 59.2 s

    Environment Info:

    • OS: Linux
    • Satpy Versions: 0.19.1 and 0.23.0
    • Pyspectral Versions: 0.9.2 and 0.10.0
    component:readers optimization 
    opened by pnuu 44
  • When saving to CF prepend datasets starting with a digit by CHANNEL_

    When saving to CF prepend datasets starting with a digit by CHANNEL_

    In NetCDF CF variables should not start with a digit.

    Some channels, like AVHRR, are just named by a number and this number is used as the dataset name. When saving to NetCDF cf the PR prepend CHANNEL_ to each dataset starting with a digit so the variables in the resulting NetCDF CF file does not start with a digit, but instead CHANNEL_<original_dataset_name>

    • [x] Closes #1518
    • [x] Tests added
    • [x] Passes flake8 satpy
    • [x] Fully documented
    enhancement component:writers 
    opened by TAlonglong 43
  • Make the metadata keys that uniquely identify a DataArray (DataID) configurable per reader

    Make the metadata keys that uniquely identify a DataArray (DataID) configurable per reader

    This is an attempt at making DatasetIDs dynamic.

    DatasetID objects are used in Satpy to index datasets in a Scene object. They are namedtuples that contain a fixed set of properties that we considered a common denominator for all datasets readable by Satpy. However, it has been shown on multiple occasions that it is becoming harder to make all the properties relevant for all the datasets. For example, polarization and level are such properties that only apply to one dataset type each (respectively SAR-C and Geocat). At the same time, more dataset types are coming into Satpy that need new properties, eg SLSTR which has nadir and oblique views that we need to include in the DatasetID if we want to discriminate the datasets efficiently.

    To avoid having to extend the set of properties needed to identify all datasets in Satpy, I propose here to make the DatasetID objects dynamic in that the set of properties they use to identify datasets can be tuned per reader. At the same time we are still able to compare DatasetIDs from different datasets. Moreover, properties that are irrelevant to a given dataset are now omitted entirely. For example, wavelength doesn't make sense for a longitude dataset, and hence will not be a part of the DatasetID needed to identify longitude, even if the reader configuration defines it as a possible property for idenfying datasets.

    For backwards compatibility, a default DatasetID is still available, but hopefully should be removed soon.

    • [x] Tests added
    • [x] Tests passed
    • [x] Passes flake8 satpy
    • [x] Fully documented
    • [x] Add a deprecation warning when the default DatasetID is used
    • [x] Remove the static DATASET_KEYS list
    • [x] Clean up/standardize the new DatasetID creation
    • [x] Fix the slstr reader
    • [x] Update docstrings of changed functions
    • [x] Fixes #1258
    enhancement documentation component:readers component:writers component:resampling component:compositors component:dep_tree refactor component:scene component:multiscene 
    opened by mraspaud 43
  • FCI L1c reader is single threaded

    FCI L1c reader is single threaded

    Describe the bug While working on https://github.com/pytroll/satpy/pull/2182 and debugging the slow-down it caused, I noticed that the current implementation of fci_l1c_nc reader is single-threaded until the writing starts.

    To Reproduce

    import glob
    import datetime as dt
    import os
    os.environ['DASK_NUM_WORKERS'] = "4"
    os.environ['OMP_NUM_THREADS'] = "1"
    os.environ['GDAL_NUM_THREADS'] = "4"
    from satpy import Scene
    from dask.diagnostics import ResourceProfiler, Profiler, CacheProfiler, visualize
    
    def main():
        fnames = glob.glob(
            "/home/lahtinep/data/satellite/geo/fci_2022_uncompressed/RC0067/*nc"
        )
        comps = ["ir_105",]
        glbl = Scene(reader='fci_l1c_nc', filenames=fnames)
        glbl.load(comps, generate=False)
    
        lcl = glbl.resample("euron1", resampler="gradient_search", reduce_data=False)
        lcl.save_datasets(base_dir='/tmp/', tiled=True, blockxsize=512, blockysize=512, driver='COG', overviews=[])
    
    
    if __name__ == "__main__":
        with Profiler() as prof, ResourceProfiler() as rprof, CacheProfiler() as cprof:
            main()
        visualize([rprof, prof, cprof],
                  filename=dt.datetime.utcnow().strftime('/tmp/profile_fci_%Y%m%d_%H%M%S.html'),
                  show=False)
    

    Expected behavior Adjusting the DASK_NUM_WORKERS variable should affect the CPU usage. In the above example, the CPU load should be around 400 % for most of the processing.

    Actual results Only the GDAL_NUM_THREADS variable has any effect. This would indicate that only the writing part is happening in parallel.

    Screenshots Screenshot 2022-08-19 at 16-18-21 Bokeh Plot

    Environment Info:

    • Satpy Version: current main (https://github.com/pytroll/satpy/commit/acd074530f1eeaa860c1d18de22ecbfd75be8166)
    • Pyresample Version: 1.25.1 from conda-forge
    • dask 2022.6.1
    • xarray 2022.6.0
    • numpy 1.22.4
    opened by pnuu 41
  • Add MODIS L2 reader

    Add MODIS L2 reader

    This PR is a continuation of #540

    • It factorizes common functions for L1b and L2 MODIS product through HDFEOSBaseFileReader
    • It adds features and tests for MODIS L2 Cloud Mask product based on @BENR0 's previous work.

    The parsing of file metada has been modified to avoid dictionary with too many levels. Rewrite and rename hdfeos_mod35.yaml because yaml file reader was unable to process it. Location data are interpolated by geotiepoints functions introduced in PR #15

    • [x] Tests added: Test MODIS L2 reader for longitude and cloud mask.
    • [x] Tests passed
    • [x] Passes git diff origin/master -- "*py" | flake8 --diff

    Some work must still be done:

    • [x] ~~Rewrite hdfeos_l1b.yaml to meet standards of other reader yaml files;~~
    • [x] ~~Add tests for L1b products;~~
    • [x] Verify that cloud mask reader output is consistent. So far, only the shape of the output array is checked, not its value;
    enhancement component:readers 
    opened by LTMeyer 40
  • Update SEVIRI native reader with 'time_parameters' metadata

    Update SEVIRI native reader with 'time_parameters' metadata

    Edit: The original purpose of this PR has changed. Originally it switched the native reader to use the observation time for the generic start and end time, but since its original creation a new "standard" has been described to use nominal time for the start/end time and put all time metadata in a special time_parameters subdictionary of .attrs.

    Original Description:

    The SEVIRI HRIT and NAT readers are currently inconsistent with their start/end time values:

    from satpy import Scene
    scn = Scene([my_nat_file], reader='seviri_l1b_native')
    scn.load(['IR_108'])
    print("NATIVE")
    print(scn['IR_108'].attrs['start_time'])
    print(scn['IR_108'].attrs['end_time'])
    
    scn = Scene(my_hrit_files, reader='seviri_l1b_hrit')
    scn.load(['IR_108'])
    print("HRIT")
    print(scn['IR_108'].attrs['start_time'])
    print(scn['IR_108'].attrs['end_time'])
    

    Gives:

    NATIVE
    2021-11-09 12:00:10.388905
    2021-11-09 12:15:10.076995
    
    HRIT 
    2021-11-09 12:00:10.388000
    2021-11-09 12:12:43.089000
    

    This is because the HRIT reader selects:

    • ['ImageProductionStats']['ActualScanningSummary']['ForwardScanStart'] and
    • ['ImageProductionStats']['ActualScanningSummary']['ForwardScanEnd'] from the trailer / epilogue.

    The NAT reader, though, selects:

    • ['ImageAcquisition']['PlannedAcquisitionTime']['TrueRepeatCycleStart'] and
    • ['ImageAcquisition']['PlannedAcquisitionTime']['PlannedRepeatCycleEnd'] from the header.

    In this PR I update the NAT reader to select the same start/end time values as the HRIT reader uses. With the PR, the output of the above code snippet is:

    NATIVE
    2021-11-09 12:00:10.388000
    2021-11-09 12:12:43.089000
    
    HRIT 
    2021-11-09 12:00:10.388000
    2021-11-09 12:12:43.089000
    
    bug component:readers 
    opened by simonrp84 36
  • Seviri l2 cf harmonization

    Seviri l2 cf harmonization

    Update of the seviri l2 reader yaml files in order to achieve CF compliance (especially standard_name attributes)

    Olivier Samain on behalf of EUMETSAT Optical Imaging service

    opened by samain-eum 4
  • Add ATMS SDR HDF5 format reader

    Add ATMS SDR HDF5 format reader

    This PR adds a reader for the ATMS SDR HDF5 format as it may be produced by the CSPP package.

    The format is described in the JPSS COMMON DATA FORMAT CONTROL BOOK (CDFCB):

    Joint Polar Satellite System (JPSS) Common Data Format Control Book - External (CDFCB-X) Volume III - SDR/TDR Formats

    (474-00001-03_JPSS-CDFCB-X-Vol-III_0124C.pdf)

    https://www.nesdis.noaa.gov/about/documents-reports/jpss-technical-documents/jpss-science-documents

    • [ ] Closes #xxxx
    • [x] Tests added
    • [ ] Fully documented
    component:readers 
    opened by adybbroe 4
  • Fix ancillary variable confusion after resampling

    Fix ancillary variable confusion after resampling

    Fix ancillary variable confusion after resampling.

    Previously, replace_anc() was only looking at _satpy_id_keys in the variable attributes. When this was not set, it would use None for constructing the DataIDs used for comparison. When we pass None as ID keys to DataID, the DataID becomes empty: DataID(), such that a comparison always evaluates to True. As a consequence, instead of replacing the "correct" of N ancillary variables, it would replace the first one N times and the other ones not at all.

    In this PR, I am taking the default_id_keys_config if no _satpy_id_keys are set in the variable attributes.

    I'm not sure if _satpy_id_keys is supposed to be always set (possibly to default_id_keys_config, or if it is expected that it is not always set.

    • [x] Closes #2329
    • [x] Closes #2330
    • [x] Tests added
    opened by gerritholl 3
  • Default name and modifiers properties for modifiers

    Default name and modifiers properties for modifiers

    Feature Request

    Even though manual application of a modifier for example the SunZenithCorrector might be an unusual use case, the name and modifiers init kwargs should be set by default for modifiers (normally these get set during loading from the yaml configs) . This would make attributes more consistent.

    Currently this has to be set by the user like so:

    from satpy.modifiers import SunZenithCorrector
    
    szen_corrector = SunZenithCorrector(name="szen_corrector", modifiers=("sunz_corrected",))
    

    Ideally the user can just initialize it like this (also because the above behaviour is not documented)

    szen_corrector = SunZenithCorrector()
    

    Describe any changes to existing user workflow As far as I can see there are not changes.

    enhancement component:compositors 
    opened by BENR0 2
  • Fixes modifier attribute getting replaced instead of merged with existing one when applying modifications

    Fixes modifier attribute getting replaced instead of merged with existing one when applying modifications

    If a modifier e.g. SunZenithCorrector is applied to a DataArray (as in #1490) which already has a modifier attribute instead of replacing the existing attribute modification get merged.

    • [ ] Closes #xxxx
    • [ ] Tests added
    opened by BENR0 0
  • Fix DataID overwriting attributes during Scene assignment and DataID not reflecting DataArray attributes

    Fix DataID overwriting attributes during Scene assignment and DataID not reflecting DataArray attributes

    This PR fixes the overwriting of attributes of the DataArray to be assigned based on the DataID when writing to an existing id as well as the DataID not reflecting array attributes (see corresponding issues below).

    The behaviour makes some assumptions which I think make sense but should be debated:

    1. If name is not in the attributes it gets added based on the choosen name in the key to which the DataArray is going to be assigned
    2. This deprecates the possibility to assign plain numpy arrays to the Scene and instead converts it to a xarray DataArray (I think this makes sense because many features of the Scene are based on attributes and as far as I can see not even the documentation mentions that this is possible).
    3. A new DataID is generated from the DataArray attributes which also updates the _satpy_id attribute so they are in sync.
    4. Currently not used but also the name property of the DataArray is set to the name in the DataID. This is something that needs to be discussed since it would be good if the name property also gets set by the readers and also, I think, they need to be unique which is not handled currently (e.g. what happens with two datasets in the Scene with DataID(name='1') and DataID(name='1', resolution=2000) ).

    Known problems

    1. Some tests are failing due to #2331
    • [x] Closes #1490, #1283
    • [x] Tests added
    • [ ] Fully documented
    opened by BENR0 0
Releases(v0.39.0)
  • v0.39.0(Dec 30, 2022)

    Issues Closed

    • Isse2326 - satpy installation failed with pip
    • Isse2325 - VIIRS SDR DNB units and file_units are conflicting
    • Isse2323 - use area def raise value different when process himawari datasets
    • Isse2311 - scatsat1_l2b and caliop_l2_cloud readers fail to initialise due to failed Dataset import
    • Isse2289 - Resampling from MSG Satellite projection to Dutch weather radar projection, area_extent missing
    • Isse2273 - Add support for HRFI imagery in the FCI L1c reader (PR2287 by @ameraner)
    • Isse2270 - Missing SEVIRI service mode for new IODC sub-satellite longitude of MET09
    • Isse2269 - Occasional errors when closing FCI L2 NetCDF file
    • Isse2264 - Can't load static image composite multiple times (PR2292 by @djhoese)
    • Isse2248 - Test_scene failure on debian sid
    • Isse2245 - native resampler fails for some chunk sizes (PR2291 by @djhoese)
    • Isse2213 - Update li_l2-reader to read MTG LI L2 test data (PR2271 by @seenno)
    • Isse2186 - FCI L1c reader is single threaded (PR2237 by @ameraner)
    • Isse1595 - Native resampler to coarsest_area fails for HRV channel due to indivisible chunk sizes
    • Isse1482 - Add option to turn off masking in seviri_l1b_hrit (PR1693 by @BENR0)
    • Isse1381 - fails to load all composites for abi_l1b
    • Isse658 - MTG LI reader is not Python 3 compatible
    • Isse650 - MTG LI reader fails
    • Isse499 - Graceful handling of saturated values in MODIS data
    • Isse370 - Make hdfeos_l1b geo interpolation use dask arrays

    In this release 20 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR2335 - Fix Scene modifying user-provided reader_kwargs
    • PR 2318 - Remove pylibtiff dependencies
    • PR 2317 - Fix for bug regarding masking of good scan lines with seviri hrit reader introduced by #1693
    • PR 2297 - Replace np.bool by np.bool_
    • PR 2292 - Fix Scene not handling DataArrays with 'sensor' set to None (2264)
    • PR 2291 - Fix native resampler not working for some chunk sizes (2245)
    • PR 2276 - Update AGRI for fill values and cailbration LUTs.

    Features added

    • PR 2315 - Port mitiff writer to use pillow
    • PR 2287 - Feature: add support for HRFI imagery in the FCI L1c reader (2273)
    • PR 2280 - Add NDVI-scaled hybrid green correction
    • PR 2271 - Add LI L2 reader (2213)
    • PR 2265 - Add a reader for insat 3d imager data (insat3d_img_l1b_h5)
    • PR 2237 - Optimise the FCI L1c/netcdf_utils by introducing on-demand variables collection and caching (2186)
    • PR 1693 - Add masking of data with line quality flags to seviri nc reader (1482)
    • PR 1678 - Add a reader for Meris L2 data

    Documentation changes

    • PR 2306 - fix description for 500m resolution
    • PR 2295 - Fix documentation reference links to EUMeTrain webpages
    • PR 2274 - Documentation correction: Not all built-in compositors derive from GenericCompositor

    In this release 18 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.38.0(Nov 11, 2022)

    Issues Closed

    In this release 20 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 2262 - Fix ratio sharpening not sharing invalid mask between bands (556)
    • PR 2260 - Fix VIIRS L1B I-band angle names being inconsistent with VIIRS SDR (2258)
    • PR 2257 - Fix failure creating directory if it already exists.
    • PR 2246 - Fix MODIS reader tests failing with new geotiepoints
    • PR 2239 - Fix incorrect rows_per_scan in 'acspo' reader (498)
    • PR 2236 - CF-compliant storage for lon/lat case (2227)
    • PR 2235 - Fix Scene.load modifiers keyword argument having no effect (2234)
    • PR 2232 - Make longitude masker & filler single band
    • PR 2221 - Fix ici after mws merge
    • PR 2220 - Fix CLAVR-x configuration in 'awips_tiled' writer to be backwards compatible
    • PR 2216 - Fix coord renaming for AOD product in 'abi_l2_nc' reader (2215)
    • PR 2210 - Fix VIIRS EDR Active Fires reader for new format and fix fine/coarse 1D swath handling (458)
    • PR 2190 - Fix some enhancements producing dask arrays wrapped in dask arrays
    • PR 2185 - Refactor HRIT readers to be smarter about compression and reading data (2183)
    • PR 2177 - Fix plugins not working with new versions of setuptools
    • PR 2176 - Fix cf write-read roundtrip (2170)
    • PR 2166 - Correct the sun azimuth angle range within satpy.

    Features added

    • PR 2230 - Add support for compressed FSFiles to HRIT readers
    • PR 2209 - Update seadas_l2 reader to handle alternative NetCDF file format (457)
    • PR 2207 - Add SEVIRI level 2 AMV BUFR
    • PR 2203 - Fix experimental dependency stdlibc++ issues in CI
    • PR 2198 - Add warning for SEVIRI native reader in case of bad data
    • PR 2187 - adding a reader for ATMS level1b data
    • PR 2185 - Refactor HRIT readers to be smarter about compression and reading data (2183)
    • PR 2175 - Add utility function to compute the relative azimuth angle.
    • PR 2164 - Add low level moisture composite
    • PR 2125 - Add reader for FY-4B / GHI data
    • PR 2120 - Add reader for MWS onboard EPS-SG-A
    • PR 2118 - Add a reader for EPS-SG Ice Cloud Imager
    • PR 1695 - Add get_area_def to cf reader (1672)

    Documentation changes

    • PR 2247 - Document behaviour on default enhancement
    • PR 2225 - Update writer table docs
    • PR 2200 - Remove mention of fallback to GDAL in geotiff writer
    • PR 2195 - Add additional logging information about enhancements being used
    • PR 2191 - Fix automatic reader table not listing readers with missing dependencies (2189)

    Clean ups

    • PR 2268 - Cleanup hy2 reader (2208)
    • PR 2252 - Create dependabot.yml
    • PR 2240 - Refactor RGB ratio sharpening again for better performance
    • PR 2205 - Update URL to rasterio repository in CI

    In this release 39 pull requests were closed.

    New Contributors

    • @BengtRydberg made their first contribution in https://github.com/pytroll/satpy/pull/2118
    • @dependabot made their first contribution in https://github.com/pytroll/satpy/pull/2255
    • @manucarran made their first contribution in https://github.com/pytroll/satpy/pull/2207

    Full Changelog: https://github.com/pytroll/satpy/compare/v0.37.1...v0.38.0

    Source code(tar.gz)
    Source code(zip)
  • v0.37.1(Aug 15, 2022)

  • v0.37.0(Aug 5, 2022)

    Issues Closed

    • Issue 2163 - ValueError: time data '2022-07-11T00:30:01Z' does not match format '%Y-%m-%dT%H:%M:%S.%fZ' (PR 2165 by @simonrp84)
    • Issue 2161 - Plotting Scene with Cartopy gives correct borders but red background
    • Issue 2155 - AVHRR CLASS Filename prefix prevents reading with Scene. (PR 2157 by @djhoese)
    • Issue 2145 - Could not calculate destination definition resolution
    • Issue 2143 - Save geotiff with keep_palette still add an alpha band
    • Issue 2139 - Hostname neo.sci.gsfc.nasa.gov not reachable anymore
    • Issue 2135 - Images are slightly different between scn.crop() and original one
    • Issue 2134 - scene.coarsest_area and scene.resample not working on MSG1/MSG2 in satpy 0.29
    • Issue 2130 - Can't install satpy with pip
    • Issue 2127 - Raised RuntimeError when trying to make HIMAWARI-8 true color image (PR 2128 by @mherbertson)
    • Issue 2112 - Trying to run scn.load(['true_color']) on GOES-16 ABI_L1b causes ValueError
    • Issue 2093 - Multiscene blend does not work well.
    • Issue 2089 - MultiScene.group doesn't work for differing identifier properties (PR 2099 by @sfinkens)
    • Issue 1996 - FCI dataset attributes are missing orbital parameters (PR 2110 by @ameraner)
    • Issue 1949 - keep delta_time instead of renaming to offset_time
    • Issue 1865 - navigation available for all L1b readers
    • Issue 1845 - Add parallax correction (PR 1904 by @gerritholl)
    • Issue 1699 - Remove compression argument from CF writer save_datasets
    • Issue 1638 - satpy_cf_nc reader not working with files written from seviri_l1b readers
    • Issue 1348 - 'AHIHSDFileHandler' object has no attribute 'area'
    • Issue 1308 - Error with yaml files during tutorial need example file I think
    • Issue 1015 - Add compute method to Scene (PR 1017 by @BENR0)

    In this release 22 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 2165 - Update AGRI reader to deal with invalid valid_range HDF attribute (2163)
    • PR 2151 - Change default type of AWIPS tiled writer to int16 + _Unsigned
    • PR 2150 - Fix typos in reader table
    • PR 2142 - Fix MODIS readers applying add_offset incorrectly
    • PR 2141 - Fix expected test results for pyorbital 1.7.2
    • PR 2137 - Fix GPM IMERG reader.
    • PR 2128 - Fix AHI source file segment order after decompressing. (2127)
    • PR 2123 - Fix negative channel 3A slope calibration coefficient in AVHRR reader
    • PR 2122 - Fix yaml files for some seviri/abi/ahi BlackMarble background composites
    • PR 2115 - Update 'viirs_edr_active_fires' to work with newer Active Fires output
    • PR 2114 - Fix ACSPO 'sensor' attribute not being lowercase
    • PR 2107 - Fix 'ahi_hsd' reader crashing when 'observation_timeline' was invalid
    • PR 2103 - Update SEVIRI ICARE reader to properly use dask.
    • PR 2100 - Fix handling of non-existent reflectance bands in 'viirs_l1b' reader
    • PR 2099 - Fix MultiScene.group in case of differing identifier properties (2089)
    • PR 2098 - Fix Scene.coarsest/finest_area not returning consistent results
    • PR 1877 - Update SEVIRI native reader with 'time_parameters' metadata

    Features added

    • PR 2160 - Add reader for ESA's Ocean Color CCI data
    • PR 2157 - Add filename pattern for CLASS subscription files (2155)
    • PR 2156 - Added filename pattern for CLASS subscription files.
    • PR 2147 - added the CRR-Ph files to the nwcsaf geo yaml file
    • PR 2146 - Update Metimage reader for L2 test data
    • PR 2140 - Add Natural Color / IR composites
    • PR 2133 - Rewrite 'apply_enhancement' as individual decorators to allow for easier dask map_blocks usage
    • PR 2110 - Add orbital_parameters to fci_l1c_nc reader (1996)
    • PR 2105 - Enable solar zenith angle caching for the DayNightCompositor
    • PR 2102 - Add more products to fci_l2_nc reader
    • PR 2097 - [pre-commit.ci] pre-commit autoupdate
    • PR 2096 - Convert remote files to FSFile objects automatically
    • PR 1919 - Implement adaptive FCI chunks padding and create a new GEOVariableSegmentYAMLReader class
    • PR 1904 - Add parallax correction via new ParallaxCorrectionModifier (1845,
    • PR 1769 - Add new composite (true_color_with_night_fires) to GOES/ABI: True color (day) with fires (night)
    • PR 1547 - Add support for fsspec files to seviri_l1b_nc reader
    • PR 1017 - Add pass through of xr compute, persist and chunk to Scene (1015)

    Documentation changes

    • PR 2153 - Document alternative for deprecated get_min/max_area
    • PR 2138 - Add plugin functionality for readers, writers, and enhancements
    • PR 2108 - Functions to automatically generate reader table for documentation
    • PR 2104 - Improvements in custom reader documentation
    • PR 2091 - Fix link to rad2refl document in SEVIRI base reader
    • PR 1886 - Update quickstart documentation so that HRV channel is not loaded

    In this release 40 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.36.0(Apr 14, 2022)

    Issues Closed

    In this release 7 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 2084 - Fix CREFL using incorrect coefficients for MODIS
    • PR 2083 - Fix VIIRS L1B reader sensor not matching VIIRS SDR reader
    • PR 2080 - Ignore alpha when adding luminance in Sandwich compositor
    • PR 2079 - Remove marine_clean_aerosol from default AHI rayleigh_corrected modifier
    • PR 2077 - Fix missing 'rb' mode for opening files (2073)
    • PR 2070 - Fix lru_cache memory leaks and other linting errors
    • PR 2048 - Fix CMIC CRE product in nwcsaf yaml reader
    • PR 2016 - Fix the sensor name for msu_gsa_l1b reader
    • PR 1410 - Fix osisaf SST reader

    Features added

    • PR 2086 - Update FCI reader for new test data release and add patches for IDPF data
    • PR 2078 - Add possibility to define the dataset rectification longitude in seviri_l2_bufr reader
    • PR 2076 - Support reading FSFiles in SEVIRI HRIT reader.
    • PR 2068 - Make sure RGBs do not have units attributes. (2066)
    • PR 2065 - Add filename to YAML for NASA NRT VIIRS files with creation date/time.
    • PR 2060 - Allow reading Bz2 hrit segments (1975)
    • PR 2057 - Add option to replace saturated MODIS L1b values with max valid value
    • PR 1980 - Adapt AAPP reader for generic chunk size
    • PR 1957 - Add RGBs for cloud phase (distinction) and type (1954)
    • PR 1410 - Fix osisaf SST reader

    Documentation changes

    • PR 2075 - Add documentation on how the colorize enhancement can be used
    • PR 2071 - Add example to the documentation using multiple readers

    Refactoring

    • PR 2087 - Refactor HRIT/LRIT format reader.

    In this release 22 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.35.0(Mar 16, 2022)

    Issues Closed

    • Issue 2063 - Unable to commit changes due to bandit (use of subprocess module)
    • Issue 2037 - Why the lon/lat is interpolated to 1km while data are still 5km for MOD06 product
    • Issue 2012 - Define time metadata options and usage (PR 2031 by @djhoese)
    • Issue 1973 - Using cached geolocation and angles results in an error if chunk size not appropriately set. (PR 2041 by @djhoese)
    • Issue 1842 - Update needed for vii_l1b_nc reader to match a change to the Test Data and processor (PR 1979 by @pepephillips)
    • Issue 1110 - NWCSAF reader does not support GOES or HIMAWARI
    • Issue 1022 - Factorize area def computation in goes_imager_hrit (PR 1934 by @sfinkens)
    • Issue 956 - UnboundLocalError when passing "empty" generator as filenames
    • Issue 723 - Passing multiple readers fails if generic_image is among them
    • Issue 684 - Gracefully handle pykdtree's use of OpenMP (OMP_NUM_THREADS) with dask

    In this release 10 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 2054 - Fix DifferenceCompositor not using metadata from YAML
    • PR 2049 - Fix dataset attribute typo and reduce amount of categorical dataset filtering in fci_l2_nc reader
    • PR 2044 - Fix unit handling in ERF DNB normalization's saturation correction
    • PR 2041 - Fix angle generation caching not working with irregular chunks (1973)
    • PR 2032 - Fix various metadata bugs in 'awips_tiled' writer (417)
    • PR 1933 - Change tested Python versions to 3.8, 3.9 and 3.10

    Features added

    • PR 2056 - Update SLSTR calibration coefficients
    • PR 2055 - Skip dataset flipping in GEOFlippableFileYAMLReader in case of SwathDefinition data
    • PR 2047 - Add missing GOES-18 support to glm_l2 reader
    • PR 2034 - Update angle generation to prefer "actual" satellite position
    • PR 2033 - Remove use of legacy satellite position attributes
    • PR 2031 - Update AHI HSD reader with observation/scheduled times and nominal satellite position (2012)
    • PR 2030 - Add 'preference' option to 'get_satpos' utility
    • PR 2028 - Add 'colormap_tag' keyword argument to geotiff writer
    • PR 1993 - Add 'l2_flags' quality filtering to 'seadas_l2' reader
    • PR 1979 - Update VII reader for test data v2 (1842)
    • PR 1933 - Change tested Python versions to 3.8, 3.9 and 3.10
    • PR 1927 - Add support for more FCI L2 products and datasets

    Refactoring

    • PR 2040 - Refactor composite generation to avoid unneeded warnings
    • PR 1934 - Factorize area computation in goes_imager_hrit (1022)

    In this release 20 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.34.0(Feb 18, 2022)

    Issues Closed

    In this release 20 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 2027 - Include units with AVHRR EPS metadata (2026)
    • PR 2017 - Fix ABI rayleigh_corrected_crefl modifier using deprecated DEM specifier
    • PR 2015 - Fix various dask array bugs in CREFL modifier
    • PR 2013 - Fix angle generation caching occassionally swapping results (2010)
    • PR 2011 - Fix memory leak in cached_property backport (2008, 2008)
    • PR 2006 - Fix Scene not being serializable
    • PR 2002 - Update tests to be more flexible to CRS and enhancement changes
    • PR 1991 - Update reference to dask distributed setup page
    • PR 1988 - Update geometry.py docstring from compositor to modifier
    • PR 1987 - Check that time is not already a coordinate in CF writer
    • PR 1983 - More general filename filter for ascat soil moisture, allowing for Metop-B and Metop-C
    • PR 1982 - Fix ninjotiff writer from erraneous K to C conversion

    Features added

    • PR 2025 - Allow skipping unit conversion in NinJoTIFF (2024)
    • PR 2007 - Update abi_l2_nc to include filename metadata similar to abi_l1b
    • PR 2005 - Add flag to MaskingCompositor to return RGBA for single-band input (2004)
    • PR 2000 - Add a reader for the MSU-GS/A + Arctica-M1 data (1999)
    • PR 1992 - Add support for CMIC product from PPSv2021
    • PR 1989 - read the "elevation" variable in slstr_l1b
    • PR 1986 - Add reader kwarg to 'ahi_hrit' to disable exact start_time (1384)
    • PR 1967 - Add ability to read comma-separated colormaps during enhancement
    • PR 1966 - Reduce MODIS L1b/L2 test case size for better test performance (1883)
    • PR 1962 - Use a dependency matrix for benchmarking

    Documentation changes

    • PR 2020 - Clarify documentation regarding attributes used in get_angles
    • PR 1991 - Update reference to dask distributed setup page
    • PR 1988 - Update geometry.py docstring from compositor to modifier
    • PR 1969 - Improve modifier documentation
    • PR 1968 - Improve API documentation in CompositeBase
    • PR 1961 - Update documentation to refer to all EO satellite data
    • PR 1960 - Add release notes and security policy to documentation
    • PR 1950 - Fix formatting in configuration documentation

    In this release 30 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.33.1(Dec 17, 2021)

    Version 0.33.1 (2021/12/17)

    Issues Closed

    • Issue 1937 - Add SECURITY.md
    • Issue 1932 - warnings of invalid value encountered in true_divide and invalid value encountered in double_scalars in
    • Issue 1903 - MPEF Product Header record definition , in seviri_base.py, needs to be updated
    • Issue 1799 - Deprecate Scene.attrs property
    • Issue 1192 - Harmonize SEVIRI area definitions

    In this release 5 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1946 - Fix angle generation not working for StackedAreaDefinitions
    • PR 1942 - Fix dynamic_dnb composite converting NaNs to 0s
    • PR 1941 - Fix SAFE SAR azimuth noise array construction
    • PR 1918 - Fix geo interpolation for aapp data

    Features added

    • PR 1674 - Feature add support for AHI True Color Reproduction

    In this release 5 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.33.0(Dec 10, 2021)

    Issues Closed

    In this release 2 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1931 - When no fill value is used, write TransparentPixel=-1 in ninjogeotiff headers (1930)
    • PR 1926 - Update seadas_l2 chlor_a enhancement to use new log10 stretch
    • PR 1922 - Fix ABI cloud_phase composite recipe and enhancement

    Features added

    • PR 1917 - Add support to read and visualize NOAA GOESR L2+ cloud mask products
    • PR 1912 - Add Frequency range
    • PR 1908 - Update AHI HSD calibration coefficients
    • PR 1905 - Updated mpef product header to include new fields
    • PR 1882 - Update GDAL_OPTIONS with driver= and COG-specific options
    • PR 1370 - Add support for reading AAPP level-1c MHS/AMSU-B data

    Refactoring

    • PR 1910 - Refactor SZA and cos(SZA) generation to reduce duplicate computations

    In this release 10 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.32.0(Dec 1, 2021)

    Issues Closed

    In this release 10 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1899 - Fix loading multi-sensor composites for manually added data (1898)
    • PR 1891 - Fix file handlers improperly matching some file types
    • PR 1884 - Fix nucaps reader failing when given multiple input files

    Features added

    • PR 1901 - Update Scene.sensor_names to include sensors from readers and contained data (1900)
    • PR 1897 - Update AHI gridded reader to use HTTP instead of FTP
    • PR 1894 - Add 'seadas_l2' reader for 'chlor_a' product
    • PR 1892 - Add new pre-commit checks
    • PR 1888 - Optimize composite YAML loading
    • PR 1885 - Add optional on-disk zarr caching to sensor angle generation
    • PR 1881 - Add area definitions for GOES ABI FOR (1880)
    • PR 1797 - Allow loading of composites after Scene resampling (1752, 1749, 1747)

    Documentation changes

    • PR 1873 - Fix a typo in the ninjogeotiff documentation

    In this release 12 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.31.0(Nov 4, 2021)

    Issues Closed

    • Issue 1866 - Data Type of AHI NetCDF Output
    • Issue 1859 - Yaml UnsafeLoader ImportErrror on colab.google (PR 1860 by @abrammer)
    • Issue 1853 - ValueError: unexpected encoding for scipy backend: ['chunksizes']
    • Issue 1847 - Sentinel 2 new product version (msi_safe reader) (PR 1850 by @mraspaud)
    • Issue 1838 - Write NinJo tags in GeoTIFF according to newly defined interface (PR 1839 by @gerritholl)
    • Issue 1836 - If satpy config path set multiple times, scene creation fails with ValueError: Satpy config option 'config_path' must be a list, not '<class 'str'>'
    • Issue 1833 - Question about specific values with cloud compositor.
    • Issue 1811 - error in reading HRIT file
    • Issue 1742 - For group_files with multiple readers, allow user to configure behaviour if some groups have zero files for some readers (PR 1743 by @gerritholl)
    • Issue 1425 - toa_bidirectional_reflectance variable allow "float" or "int" NetCDF output instead of "double"
    • Issue 1345 - full list of simple_image image types
    • Issue 1138 - save_datasets does not save dependencies available due to unload=False (PR 1864 by @djhoese)

    In this release 12 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1868 - Fix MiRS reader not working with new versions of dask
    • PR 1860 - Catch ImportError on UnsafeLoader in composites/config_loader (1859)
    • PR 1855 - Fix 'acspo' reader producing non-y/x dimension names
    • PR 1854 - Fix 'awips_tiled' writer doing unnecessary attribute formatting
    • PR 1849 - Update AGRI reader to ensure that angles can be correctly loaded.

    Features added

    • PR 1850 - Adapt msi-safe to the new product format (1847)
    • PR 1839 - Add ninjogeotiff writer to write GeoTIFFs including necessary NinJo tags in GDALMetadata (1838)
    • PR 1743 - Add option to configure group_files behaviour on empty groups in case of multiple readers (1742)

    Documentation changes

    • PR 1867 - Update PDF metadata for sphinx documentation
    • PR 1864 - Update Scene.save_datasets to clarify what will be saved (1138)
    • PR 1862 - Correct phrasing of upside-down
    • PR 1852 - Fix reference to dask distributed setup page

    In this release 12 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.30.1(Sep 29, 2021)

    Issues Closed

    In this release 6 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR1837 - Fix config path handling on Windows
    • PR1827 - Fix eumetsat urls in satpy/readers (1484)

    Documentation changes

    • PR1837 - Fix config path handling on Windows
    • PR1830 - Move tests_require to special "tests" extra for easier installation (1829)
    • PR1827 - Fix eumetsat urls in satpy/readers (1484)

    In this release 5 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.30.0(Sep 17, 2021)

    Issues Closed

    • Issue 1821 - Resampling to true_color_with_night_ir_hires no longer works. (PR 1823)
    • Issue 1803 - how to xRITDecompress files for using satpy
    • Issue 1796 - Extend use of bz2 compression for input files for seviri_l1b_hrit (PR 1798)
    • Issue 1794 - ir_overview vs cloudtop
    • Issue 1793 - Different y_bounds and x_bounds shapes of TROPOMI MultiScene
    • Issue 1791 - Memory usage has increased drastically
    • Issue 1786 - The viirs_sdr reader does not function correctly with GMODO geolocation. (PR 1787)
    • Issue 1783 - Metadata name problem in HY-2B L2B reader (PR 1785)
    • Issue 1780 - What shoud I do if I only want to keep the day part of DayNightCompositor? (PR 1816)
    • Issue 1779 - piecewise_linear_stretch didn't work properly on GK-2A AMI data
    • Issue 1773 - [Question] Geolocation information of FengYun4A (FY-4A) AGRI L1B data (PR 1782)
    • Issue 1759 - Ask For Help: How to operate SunZenithCorrector manually?
    • Issue 1750 - MultiScene.blend does not document the interface for the blend function (PR 1751)
    • Issue 1745 - Resampling MODIS Level 1B data
    • Issue 1738 - available_dataset_names omits composites depending on more than one reader
    • Issue 1730 - geotiff writer ignores dtype argument, always writes float if enhance=False (PR 1733)
    • Issue 1728 - Unable to read HY-2B SCA L2B file
    • Issue 1727 - 'NoData' area is not black(clean) in the Sentinel-2 MSI output (PR 1628)
    • Issue 1722 - 'ModuleNotFoundError' when processing Sentinel-2 MSI data (PR 1723)
    • Issue 1718 - Raw metadata handling impacts performance (PR 1795)
    • Issue 1661 - Support for clavrx netcdf files (PR 1716)
    • Issue 1625 - Part of Sentinel-2 images missing when atmospheric corrected (PR 1628)
    • Issue 1584 - to_xarray_dataset on empty scene fails with TypeError (PR 1698)

    In this release 23 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1823 - Fix unify_chunks usage in compositors and fix image mode in BackgroundCompositor (1821)
    • PR 1814 - Add missing metadata to MODIS L1b and L2 readers
    • PR 1813 - Fix composites failing when inputs are different chunk sizes
    • PR 1808 - Fix ReflectanceCorrector (crefl) for MODIS data
    • PR 1804 - Fix consistency with nucaps sensor metadata (set/lowercase)
    • PR 1802 - Add warning in 'awips_tiled' writer when 'units' are too long
    • PR 1800 - Fix for missing attributes when requesting 'counts' calibration from ABI L1B reader.
    • PR 1792 - Maintain categorical clavrx data as integer arrays
    • PR 1787 - Fix 'viirs_sdr' repeating data when TC geolocation was not available (1786)
    • PR 1784 - Fix ABI readers not assigning 'platform_name' for GOES-18/19
    • PR 1782 - Update AGRI/L1 geolocation (1773)
    • PR 1777 - Fix mviri l1b fiduceo reader compatibility with newer xarray
    • PR 1776 - Fix 'awips_tiled' writer producing an invalid y coordinate
    • PR 1774 - Fix the seviri benchmarks
    • PR 1771 - Fix VIIRS SDR reader not handling multi-granule files with fewer scans
    • PR 1770 - Fix CLAVR-x reader and 'awips_tiled' writer to produce AWIPS-compatible output
    • PR 1744 - Fix VIRR reader handling valid_range when it is a numpy array
    • PR 1734 - Remove valid_range from attributes in VIRR L1b reader
    • PR 1733 - Fix geotiff writer ignoring dtype argument (1730, 1730)
    • PR 1724 - Replace doc references to PPP_CONFIG_DIR (1724)
    • PR 1723 - Fix package dependencies for the msi_safe reader (1722)
    • PR 1698 - Fix error when calling to_xarray_dataset on an empty scene (1584)
    • PR 1628 - Fix for transposed angles in safe-msi reader (1727, 1625)

    Features added

    • PR 1824 - Add additional ACSPO reader file patterns
    • PR 1817 - Fix ninjotiff writer for mode P
    • PR 1816 - Add 'day_night' flag to DayNightCompositor for day-only or night-only results (1780)
    • PR 1815 - Add MODIS L2 products produced by IMAPP
    • PR 1805 - Add 'reader' name to all produced DataArrays
    • PR 1801 - added link to the GOES-2-go package in the docs as a download source.
    • PR 1798 - Add on-the-fly bz2 decompression for HRIT MSG PRO and EPI files (1796)
    • PR 1790 - Add ABI L1B benchmarks
    • PR 1785 - Feature handle data from HY-2B SCAT files directly from NSOAS (1783)
    • PR 1772 - Add access point to global_attrs to netCDF4FileHandler
    • PR 1760 - Add benchmarks for seviri hrit
    • PR 1720 - Add a test to ensure seviri hrv has priority over vis008 when requesting 0.8µm
    • PR 1717 - Add low resolution file patterns for AHI HSD reader
    • PR 1716 - Update Clavrx reader for netcdf files (1661)
    • PR 1692 - Add raw 'counts' calibration to 'abi_l1b' reader
    • PR 1297 - Add support for MCMIP GOES ABI L2 files (1162)

    Documentation changes

    • PR 1819 - Fix invalid YAML syntax in enhancement documentation
    • PR 1801 - added link to the GOES-2-go package in the docs as a download source.
    • PR 1765 - Add missing demo data directory entry to config documentation
    • PR 1751 - Improve documentation for MultiScene.blend (1750)
    • PR 1726 - Point out get_area_def in resample documentation (1726)
    • PR 1724 - Replace doc references to PPP_CONFIG_DIR (1724)

    In this release 45 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.29.0(Jun 6, 2021)

    Issues Closed

    • Issue 1714 - Plotting day night composite satellite image
    • Issue 1689 - BackgroundCompositor using IR Sandwich (masked so only coldest clouds are visible) and True Color as inputs (PR 1690)
    • Issue 1684 - Rename fci_l1c_fdhsi to fci_l1c_nc (PR 1712)
    • Issue 1293 - DOC: broken link for geoview (PR 1697)
    • Issue 1120 - Broken-off sentence in cf_writer module documentation: "If a non-dimensional coordinate is identical for" (PR 1697)
    • Issue 1104 - NUCAPS reader uses incorrect _FillValue (PR 1710)
    • Issue 1097 - Deprecate satpy.readers.utils.get_area_slices
    • Issue 1085 - Add tonemapping modifiers for truecolor images
    • Issue 1060 - Reorder installation instructions to put conda before PyPI (PR 1711)
    • Issue 1028 - Mitiff tests failing on python 3.7 travis environments
    • Issue 990 - Documentation on storing area definitions has a broken fragment identifier link to pyresample (PR 1697)
    • Issue 973 - For VIIRS composite there are two composites with the same name.
    • Issue 936 - Swap names for Vis/IR default natural_color and natural_color_sun composites
    • Issue 722 - Standardise self.mda for SEVIRI attributes
    • Issue 608 - Update to fix deprecation warning from dask regarding atop
    • Issue 566 - Add AbstractScene class
    • Issue 500 - Add ability to add proper references to published algorithms
    • Issue 495 - Update tests to skip tests if dependencies are missing
    • Issue 425 - Add DART compatible observation writer
    • Issue 346 - lat-lon as the default dimensions
    • Issue 334 - Add 'Performance Tips' section to documentation
    • Issue 164 - Should enhancers know the data type beforehand
    • Issue 102 - Fix meteosat 10 area
    • Issue 100 - Add background color option to simple image writer
    • Issue 99 - Adding coastlines does not preserve transparency
    • Issue 92 - Merge area definition files
    • Issue 9 - Convert mpop readers to satpy yaml readers

    In this release 27 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1710 - Fix NUCAPS reader having incorrect _FillValue attribute (1104)
    • PR 1706 - Update SLSTR reader to choose correct file for interpolated angles
    • PR 1691 - Fix reference to sector_id global key in 'awips_tiled' writer YAML
    • PR 1690 - Fix SandwichCompositor modifying input data (1689)
    • PR 1679 - Remove extra attributes tag and fix indentation

    Features added

    • PR 1715 - Fix benchmarks to run with older commits
    • PR 1701 - Add pending deprecation reader names check
    • PR 1680 - Implement reading of index map and auxiliary data in FCI L1c reader

    Documentation changes

    In this release 10 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.28.1(May 19, 2021)

    Issues Closed

    • Issue 1676 - New config feature does not support a subprocess call to another script which uses satpy too. (PR 1677)
    • Issue 1647 - Bucket resamplers AttributeError in logging message (PR 1648)
    • Issue 1145 - satpy to support reading of satpy generated netcdf cf files
    • Issue 1016 - Add reader for netcdf datasets written with Satpy
    • Issue 604 - test_generic_image.py failure: "projection not named"
    • Issue 562 - Undocumented dependency packages (PR 1673)

    In this release 6 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1677 - Fix SATPY_CONFIG_PATH being unusable when imported in a subprocess (1676)
    • PR 1671 - Improve MiRS reader handling of missing metadata
    • PR 1670 - Fix combination of raw metadata (again)
    • PR 1666 - Ensure that orbital parameters are in a dict
    • PR 1648 - Fix bucket resamplers trying to print non-existent name (1647)
    • PR 1639 - Fix MultiScene writer handling of multiple delayed objects
    • PR 1499 - Fix default dtype in geotiff writer if enhance=False

    In this release 7 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.28.0(May 14, 2021)

    Issues Closed

    • Issue 1669 - Cropping a country from an earth image using latitude and longitude coordinate
    • Issue 1667 - Extracting data/ reading data from .DAT file
    • Issue 1664 - Nan values when resample with Kompsat
    • Issue 1656 - Cannot load datasets of multiple SEVIRI native files (PR 1663)
    • Issue 1650 - wrong gamma for red beam of cira_fire_temperature RGB (PR 1662)
    • Issue 1641 - UnicodeDecodeError and ValueError when passing local FSFile to abi_l1b
    • Issue 1635 - The crop function is no longer working.
    • Issue 1633 - Auxiliary offline download doesn't work for modifiers (PR 1634)
    • Issue 1632 - Can't resample GOES Meso data when using night IR composite (PR 1643)
    • Issue 1626 - problem with read UMETSAT
    • Issue 1601 - Allow MiRS reader to apply limb correction optionally (PR 1621)
    • Issue 1594 - slstr_l2: Failed to filter out correct files using find_files_and_readers() with start_time and end_time
    • Issue 1562 - Improve Scene.copy wishlist handling when datasets to copy are specified (PR 1630)
    • Issue 1495 - Values of reflectance

    In this release 14 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1665 - Fix fci l2 tests on windows
    • PR 1663 - Ignore raw metadata when combining metadata (1656)
    • PR 1662 - Fix cira fire temperature and green snow (1650)
    • PR 1655 - Apply valid_range in MiRS reader when present
    • PR 1644 - Add id for GOMS3/Electro-l n3
    • PR 1643 - Fix combine_metadata not handling lists of different sizes (1632)
    • PR 1640 - Fix AAPP l1b reader for negative slope on channel 2 (332)
    • PR 1634 - Fix offline aux download not working for modifiers (1633)
    • PR 1631 - Fix satellite altitude being in kilometers in ABI L2 reader
    • PR 1630 - Fix Scene.copy not preserving wishlist properly (1562)
    • PR 1578 - Fix nightly/unstable CI URL

    Features added

    • PR 1659 - Add SEVIRI + NWC SAF GEO VIS/IR cloud overlay composite
    • PR 1657 - Add parallax-corrected file patterns to the nwcsaf-geo reader
    • PR 1646 - Add new piecewise_linear_stretch enhancement method
    • PR 1636 - Add first benchmarks (uses asv)
    • PR 1623 - Add the reinhard enhancements
    • PR 1621 - Add limb_correction keyword argument to MiRS reader (1601)
    • PR 1620 - Add feature to StaticImageCompositor to allow filenames relative to Satpy 'data_dir'
    • PR 1560 - Allow custom dataset names in 'generic_image' reader and fix nodata handling

    In this release 19 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.27.0(Mar 26, 2021)

    Issues Closed

    • Issue 1616 - Thermal channels NinJoTIFF writing fail with AttributeError due to lost attributes (PR 1617)
    • Issue 1614 - Saving AAPP-processed NOAA HRPT to NinJoTIFF fails with AttributeError (PR 1615)
    • Issue 1608 - SEVIRI L1.5 native reader does not support files not including 0100 in the file name (PR 1609)
    • Issue 1605 - Reading FSFile fails with TypeError (PR 1606)
    • Issue 1604 - group_files does not support FSFile objects (TypeError: unhasshable type 'FSFile') (PR 1606)
    • Issue 1493 - Failed to save tropomi nc file with specific variables loaded (PR 1588)

    In this release 6 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1617 - Fix ninjotiff convert units attributes (1616)
    • PR 1615 - Fix and improve unit conversion when writing NinJoTIFF (1614)
    • PR 1613 - Standardize vii dims
    • PR 1610 - Fix auxiliary download script not using provided data directory
    • PR 1609 - Fix file pattern matching in SEVIRI Native reader (1608)
    • PR 1606 - Make FSFile hashable again (1605, 1604)
    • PR 1603 - Update slstr_l2.yaml
    • PR 1600 - When setting upper_right_corner make sure that all dataset coordinates are flipped
    • PR 1588 - Bugfix of link_coords (1493)

    Features added

    • PR 1618 - Update VIIRS/MODIS ReflecanceCorrector modifier to download DEM data at runtime
    • PR 1612 - Add support for SEVIRI Native files without archive header
    • PR 1602 - Fix missing VIIRS SDR DNB solar and lunar azimuth angle datasets
    • PR 1468 - Harmonize SEVIRI auxiliary data

    Documentation changes

    • PR 1599 - Add MiRS and mimicTPW2_comp readers to sphinx documentation

    In this release 14 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.26.0(Mar 15, 2021)

    Issues Closed

    • Issue 1587 - Don't allow auxiliary downloads during tests (PR 1591)
    • Issue 1581 - FSFile object compares unequal when all properties equal (PR 1582)
    • Issue 1573 - Crash when reaching warnings.DeprecationWarning (PR 1576)
    • Issue 1572 - Satpy Github issue template example code fails with ModuleNotFoundError (PR 1575)
    • Issue 1550 - Scene metadata overwriting composite metadata and handling sets in filename generation (PR 1551)
    • Issue 1549 - Satpy problems with MODIS (PR 1556)
    • Issue 1538 - modifier API documentation not included with sphinx-generated API documentation
    • Issue 1536 - Can't resample mscn to GridDefinition
    • Issue 1532 - Loading SLSTR composite doesn't respect the view (PR 1533)
    • Issue 1530 - Improve documentation/handling of string input for config_path (PR 1534)
    • Issue 1520 - Test failure if SATPY_CONFIG_PATH set (PR 1521)
    • Issue 1518 - satpy_cf_nc reader fails to read satpy cf writer generated netcdf files where variables start with a number. (PR 1525)
    • Issue 1517 - Scene.load error on conflicting 'y' values with MSG example.
    • Issue 1516 - FSFile should support any PathLike objects (PR 1519)
    • Issue 1510 - Seviri L1b native Solar zenith angle
    • Issue 1509 - Replace pkg_resources usage with version.py file (PR 1512)
    • Issue 1508 - Add sphinx building to GitHub Actions
    • Issue 1507 - FCI Level2 OCA Data - error parameters have a parameter name change in the latest version of the test data (PR 1524)
    • Issue 1477 - seviri l2 grib add file names from Eumetsat datastore (PR 1503)
    • Issue 1362 - Feature request: download tif's if needed in a composite (PR 1513)
    • Issue 894 - SCMI Writer can produce un-ingestable AWIPS files
    • Issue 628 - Use 'donfig' package for global configuration settings (PR 1501)
    • Issue 367 - Add 'to_xarray_dataset' method to Scene
    • Issue 175 - Cannot read AVHRR in HRPT format (geoloc dtype error) (PR 1531)

    In this release 24 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1596 - Fix bug in finest_area and coarsest_area logic for originally flipped SEVIRI data
    • PR 1592 - Fix tests where xarray was unable to guess backend engine
    • PR 1589 - Delete unnecessary coordinates in tropomi reader
    • PR 1582 - Ensure FSFile objects compare equal when they should (1581)
    • PR 1579 - Fix AHI HSD reader not having access to the AreaDefinition on load
    • PR 1574 - Fix, correct usage of data returned by pyspectral AtmosphericalCorrection
    • PR 1567 - Redesign awips_tiled writer to avoid xarray/dask deadlocks
    • PR 1564 - Fix DifferenceCompositor ignoring YAML metadata
    • PR 1558 - Fix dependency tree CompositorNode not retaining properties on copy
    • PR 1556 - Fix the dataid sorting (1549)
    • PR 1551 - Fix composite metadata overwriting and 'sensor' filename formatting (1550)
    • PR 1548 - Add 'environment_prefix' to AWIPS tiled writer for flexible filenames
    • PR 1546 - Make viirs-compact datasets compatible with dask distributed
    • PR 1545 - Fix deprecated sphinx html_context usage in conf.py
    • PR 1542 - Fix compression not being applied in awips_tiled writer
    • PR 1541 - Fix swath builtin coordinates not being used
    • PR 1537 - Add static scale_factor/add_offset/_FillValue to awips_tiled GLM config
    • PR 1533 - Fix SLSTR composites for oblique view (1532)
    • PR 1531 - Update the HRPT reader to latest satpy api (175)
    • PR 1524 - Fixed issue with reading fci oca error data and added fci toz product (1507)
    • PR 1521 - Fix config test when user environment variables are set (1520)
    • PR 1519 - Allow to pass pathlike-objects to FSFile (1516)
    • PR 1514 - Correct the pdict a_name of agri_l1 reader
    • PR 1503 - Fix issue with reading MSG GRIB products from the eumetsat datastore (1477)

    Features added

    • PR 1597 - add file_patterns in file_types with resolution type for satpy_cf_nc reader
    • PR 1591 - Disallow tests from downloading files while running tests (1587)
    • PR 1586 - Update GRIB reader for greater flexibility.
    • PR 1580 - Sar-c reader optimization
    • PR 1577 - New compositors: MultiFiller and LongitudeMaskingCompositor
    • PR 1570 - Add the SAR Ice Log composite
    • PR 1565 - Rename min_area() and max_area() methods
    • PR 1563 - Allow 'glm_l2' reader to accept arbitrary filename prefixes
    • PR 1555 - Add altitude in the list of dataset for OLCI.nc
    • PR 1554 - Enable showing DeprecationWarning in debug_on and add unit test (1554)
    • PR 1544 - Read wavelength ranges from netcdf
    • PR 1539 - Fix args of bucket_sum and bucket_avg resampler
    • PR 1525 - When saving to CF prepend datasets starting with a digit by CHANNEL_ (1518)
    • PR 1522 - Switch to 'ewa' and 'ewa_legacy' resamplers from pyresample
    • PR 1513 - Add auxiliary data download API (1362)
    • PR 1505 - Ascat soilmoisture reader
    • PR 1501 - Add central configuration object (628)

    Documentation changes

    • PR 1559 - Fix geotiff writer FAQ link
    • PR 1545 - Fix deprecated sphinx html_context usage in conf.py
    • PR 1543 - Switch to sphinxcontrib.apidoc for automatically updating API docs (1540)
    • PR 1534 - Clarify usage of config 'config_path' option (1530)

    Backward incompatible changes

    • PR 1565 - Rename min_area() and max_area() methods
    • PR 1561 - Remove deprecated VIIRSFog compositor in favor of DifferenceCompositor
    • PR 1501 - Add central configuration object (628)

    In this release 48 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.25.1(Jan 7, 2021)

    Issues Closed

    • Issue 1500 - Cannot create a scene for OLCI data

    In this release 1 issue was closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1502 - Fix the linting error of test_agri_l1
    • PR 1459 - Remove unnecessary string decode in agri_l1 reader

    In this release 2 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.25.0(Jan 4, 2021)

    Issues Closed

    In this release 12 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1491 - Fix missing coordinates for bucket resamplers (1488)
    • PR 1481 - Remove x/y coordinates in mviri_l1b_fiduceo_nc
    • PR 1473 - Fix '::' erroneous for dicts syntax in docstrings (1453, 1453)
    • PR 1466 - Fix wavelength range print out to use regular nbsp (1449)
    • PR 1447 - Fix handling of modifiers in satpy-cf reader

    Features added

    • PR 1485 - Harmonise AreaDefinition namings in EUM geos readers and sort geos areas in areas.yaml (1187)
    • PR 1478 - Improve FCI geolocation computation, harmonize area_id, add geolocation tests
    • PR 1476 - Add support for multiple values in the DecisionTree used for enhancements
    • PR 1474 - Fix EUMGACFDR reader so that all datasets can be read.
    • PR 1465 - Updates to FCI reader to include CT, CTTH, GII and the latest filenam…
    • PR 1457 - Harmonize calibration in SEVIRI readers
    • PR 1442 - Switch ci coverage to xml for codecov compatibility
    • PR 1441 - Add github workflow
    • PR 1439 - Add support for s3 buckets in OLCI and ABI l1 readers
    • PR 1438 - Full disk padding feature for SEVIRI Native data (1440)
    • PR 1427 - Add reader for FIDUCEO MVIRI FCDR data
    • PR 1421 - Add reader for AMSR2 Level 2 data produced by GAASP software (amsr2_l2_gaasp)
    • PR 1402 - Add ability to create complex tiled AWIPS NetCDF files (formerly SCMI writer)
    • PR 1393 - Fix sar-c calibration and add support for dB units
    • PR 1380 - Add arbitrary filename suffix to ABI L1B reader
    • PR 1351 - Refactor Scene loading and dependency tree (1443)
    • PR 937 - Add GLM + ABI highlight composite

    Documentation changes

    • PR 1473 - Fix '::' erroneous for dicts syntax in docstrings (1453, 1453)
    • PR 1448 - DOC: add explanation to the way x and y work in aggregate

    Refactoring

    • PR 1402 - Add ability to create complex tiled AWIPS NetCDF files (formerly SCMI writer)
    • PR 1351 - Refactor Scene loading and dependency tree (1443)

    In this release 26 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.24.0(Aug 13, 2021)

    Issues Closed

    • Issue 1412 - Mimic reader fails when multiple times are provided to Scene object
    • Issue 1409 - "Unexpected number of scanlines!" when reading AVHRR GAC data
    • Issue 1399 - Customes Scene creation from MultiScene.from_files (PR 1400)
    • Issue 1396 - reader_kwargs should differentiate between different readers (PR 1397)
    • Issue 1389 - Can't load angle data from msi_safe in version 0.23 (PR 1391)
    • Issue 1387 - NUCAPS time format of data from CLASS (PR 1388)
    • Issue 1371 - MIMIC reader available_dataset_names returns 1d lat/lon fields (PR 1392)
    • Issue 1343 - Feature Request: available_readers to return alphabetical order
    • Issue 1224 - GRIB-2/ICON geolocation unknown or invalid for western hemisphere (PR 1296)

    In this release 9 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1435 - Fix tests for GEOFlippableFileYAMLReader after AreaDefinition.area_extent being immutable
    • PR 1433 - Fix cloud-free pixels in cloudtop height composite
    • PR 1432 - Fix enhance2dataset to support P-mode datasets
    • PR 1431 - Fix crash when TLE files are missing
    • PR 1430 - Fix infer_mode not using the band coordinate
    • PR 1428 - Bugfix NWC SAF GEO v2016 area definition
    • PR 1422 - Fix HDF5 utility file handler not decoding byte arrays consistently
    • PR 1413 - Fix pyspectral link in the main doc page
    • PR 1407 - Fix mersi 2 angles reading
    • PR 1392 - Remove 1-D lat/lon variables from mimic reader's available datasets (1371)
    • PR 1391 - Fix the MSI / Sentinel-2 reader so it uses new DataID (1389)
    • PR 1388 - Fix handling of new date string formats in NUCAPS reader (1387)
    • PR 1382 - Fixed bug getting name to the calibration in mitiff writer
    • PR 1296 - Fix grib reader handling for data on 0-360 longitude (1224)

    Features added

    • PR 1420 - Add support for Near-realtime VIIRS L1b data.
    • PR 1411 - Added MERSI-2 file pattern for data from NMSC
    • PR 1406 - Handle bilinear caching in Pyresample
    • PR 1405 - Add FIR product to seviri_l2_grib reader
    • PR 1401 - Add function to the SLSTR L1 reader to enable correction of VIS radiances.
    • PR 1400 - Improve customisation in multiscene creation (1399)
    • PR 1397 - Allow different kwargs for different readers (1396)
    • PR 1394 - Add satpy cf-reader and eumetsat gac reader (1205)
    • PR 1390 - Add support to Pyspectral NIRReflectance masking limit
    • PR 1378 - Alphabetize available_readers method and update documentation

    Documentation changes

    • PR 1415 - Update Code of Conduct contact email to groups.io address
    • PR 1413 - Fix pyspectral link in the main doc page
    • PR 1374 - DOC: add conda-forge badge

    Backward incompatible changes

    • PR 1360 - Create new ModifierBase class and move existing modifiers to satpy.modifiers

    Refactoring

    • PR 1360 - Create new ModifierBase class and move existing modifiers to satpy.modifiers

    In this release 29 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.23.0(Sep 18, 2020)

    Issues Closed

    • Issue 1372 - fix typo in developer instructions for conda install (PR 1373)
    • Issue 1367 - AVHRR lat/lon grids incorrect size (PR 1368)
    • Issue 1355 - ir product
    • Issue 1350 - pip install[complete] vs pip install[all]
    • Issue 1344 - scn.load('C01') gives - TypeError
    • Issue 1339 - hrv composites for global scene
    • Issue 1336 - Problem with making MODIS L1 images
    • Issue 1334 - SEVIRI reader doesn't include Earth-Sun distance in the rad->refl calibration (PR 1341)
    • Issue 1330 - AAPP AVHRR level 1 reader raises a Value error when a channel is missing (PR 1333)
    • Issue 1292 - Feature Request: update to Quickstart to use data from the demo module
    • Issue 1291 - get_us_midlatitude_cyclone_abi in satpy.demo fails (PR 1295)
    • Issue 1289 - update _makedirs in satpy.demo (PR 1295)
    • Issue 1279 - MultiScene.blend(blend_function=timeseries) results in incorrect start_time, end_time
    • Issue 1278 - Trying to get Earth's semimajor and semiminor axis size from HRIT files
    • Issue 1271 - Test failures in MERSI and VIIRS readers after fixing bugs in test routines (PR 1270)
    • Issue 1268 - Support multiple readers in MultiScene.from_files (PR 1269)
    • Issue 1261 - Reading the SEVIRI HRV channel with seviri_l1b_native returns a numpy array (PR 1272)
    • Issue 1258 - Saving true color GOES image requires double-resampling if calibration='radiance' (PR 1088)
    • Issue 1252 - Incorrect error message when calibration key unknown
    • Issue 1243 - Wrong data type of orbital_parameters in FY4A AGRI reader (PR 1244)
    • Issue 1191 - cf_writer should append to Convention global attribute if given header_attr (PR 1204)
    • Issue 1149 - GLM data LCFA from Class
    • Issue 299 - Missing HRV-channel StackedAreaDefinition for native_msg-reader

    In this release 23 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1368 - Fix wrong number of scanlines in eps reader (1367)
    • PR 1366 - Fixing a few typos in slstr_l1b yaml reader
    • PR 1365 - Fix leftovers from module splitting
    • PR 1358 - Daskify Earth-Sun distance correction.
    • PR 1357 - Only add longitude/latitude variables in cf_writer if they are not included already.
    • PR 1354 - Update name for gridded AHI reader
    • PR 1353 - Add_band workaround for dask bug
    • PR 1341 - Add Sun-Earth distance corrector utility and apply in SEVIRI readers (1334)
    • PR 1338 - Fix exception to catch when new namedtuple syntax is used
    • PR 1333 - Fix aapp_l1b reader to behave nicely on missing datasets (1330)
    • PR 1320 - Fix 'viirs_sdr' reader not scaling DNB data properly
    • PR 1319 - Fix NIRReflectance passing None as sunz_threshold
    • PR 1318 - Fix time extraction from filenames in yaml for SEVIRI Native and NetCDF readers
    • PR 1315 - Fix tests on i386
    • PR 1313 - Fix true colors generation for AHI HSD data and refactor the dep tree code
    • PR 1311 - Make colorize compositor dask-compatible
    • PR 1309 - Refactor the combine_metadata function and allow numpy arrays to be combined
    • PR 1303 - Fix nucaps reader failing when kwargs are passed
    • PR 1302 - Fix numpy scalars considered arrays in combine_metadata
    • PR 1295 - Fix ABI mid-latitude cyclone demo downloading wrong number of files (1291, 1289)
    • PR 1262 - Fix handling of HRV channel navigation for RSS data in seviri_l1b_native reader
    • PR 1259 - Update safe_msi for new pyproj compatibility
    • PR 1247 - Fix time reading in vaisala_gld360 reader

    Features added

    • PR 1352 - Reintroduce support for pyproj 1.9.6 in cf_writer
    • PR 1342 - Update seviri icare tests
    • PR 1327 - Refactor reader configuration loading to remove redundant code
    • PR 1312 - Add reader for gridded AHI data
    • PR 1304 - DOC: add create vm instructions
    • PR 1294 - Add ability to supply radiance correction coefficients to AHI HSD and AMI readers
    • PR 1284 - add more RGB to FY4A
    • PR 1269 - Support multiple readers in group_files and MultiScene.from_files (1268)
    • PR 1263 - Add generic filepatterns for mersi2 reader
    • PR 1257 - Add per-frame decoration to MultiScene (1257)
    • PR 1255 - Add test utility to make a scene.
    • PR 1254 - Preserve chunks in CF Writer
    • PR 1251 - Add ABI Fire Temperature, Day Convection, and Cloud Type composites.
    • PR 1241 - Add environment variables handeling to static image compositor
    • PR 1237 - More flexible way of passing avhrr_l1b_gaclac reader kwargs to pygac
    • PR 1204 - Alter the way cf_writer handle hardcoded global attributes (1191)
    • PR 1088 - Make the metadata keys that uniquely identify a DataArray (DataID) configurable per reader (1258)
    • PR 564 - Add new ABI composites

    Documentation changes

    • PR 1373 - Fix word order error in conda install instructions (1372)
    • PR 1346 - DOC: put pip install with extra dependency in quotation
    • PR 1332 - Remove reference to datasetid in tests.utils.
    • PR 1331 - Fix auxiliary files for releasing and pr template
    • PR 1325 - Use nbviewer for linking notebooks.
    • PR 1317 - Fix typo in variable names in resample documentation
    • PR 1314 - Remove use of YAML Anchors for easier understanding
    • PR 1304 - DOC: add create vm instructions
    • PR 1264 - Fix "see above" reference at start of enhance docs
    • PR 1088 - Make the metadata keys that uniquely identify a DataArray (DataID) configurable per reader (1258)

    Backward incompatible changes

    • PR 1327 - Refactor reader configuration loading to remove redundant code
    • PR 1300 - Refactor scene to privatize some attributes and methods

    Refactoring

    • PR 1341 - Add Sun-Earth distance corrector utility and apply in SEVIRI readers (1334)
    • PR 1327 - Refactor reader configuration loading to remove redundant code
    • PR 1313 - Fix true colors generation for AHI HSD data and refactor the dep tree code
    • PR 1309 - Refactor the combine_metadata function and allow numpy arrays to be combined
    • PR 1301 - Split DependencyTree from Node and DatasetDict
    • PR 1300 - Refactor scene to privatize some attributes and methods
    • PR 1088 - Make the metadata keys that uniquely identify a DataArray (DataID) configurable per reader (1258)

    In this release 60 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.22.0(Jun 10, 2020)

    Issues Closed

    In this release 23 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1230 - FCI: fix areadef when only pixel quality asked (1229, 1229)
    • PR 1216 - Make combine_arrays understand non-numpy arrays (1215, 1215)
    • PR 1213 - Remove invalid valid_range metadata from abi readers
    • PR 1211 - Fix "rows_per_scan" not being available from VIIRS SDR readers
    • PR 1202 - Fix bad error message when Scene was given a bad reader name (1201)
    • PR 1195 - Fix accessing uncached root group variable when using NetCDF4FileHandler in caching mode (1195)
    • PR 1170 - Fix cf writing of 3d arrays
    • PR 1155 - Lowercase sensor of tropomi_l2 (1153)
    • PR 1139 - Keep int type and fix scale_factor/dim bug in tropomi_l2 reader (1143)

    Features added

    • PR 1227 - Delete kdtree after saving cache
    • PR 1226 - Add a feature for handling scheduled_time in ahi_hsd reader.
    • PR 1219 - Add VII L2 netCDF-reader.
    • PR 1218 - Add VII L1b netCDF-reader.
    • PR 1212 - Add file pattern for NWCSAF input file names to 'grib' reader (1212)
    • PR 1199 - Cache dimension per variable (1198)
    • PR 1189 - Add option to supply sunz-threshold applied in Pyspectral
    • PR 1188 - Add areas for FCI (1132)
    • PR 1186 - Fix SEVIRI native reader flipping
    • PR 1185 - Add scanline acquisition times to hrit_jma
    • PR 1183 - Add options for creating geotiff overviews
    • PR 1181 - Add more explicit error message when string is passed to Scene.load
    • PR 1180 - Migrate FCI tests to pytest
    • PR 1178 - Optimize readers searching for matching filenames (1172)
    • PR 1177 - Add support for reading pixel_quality ancillary variables, FCI reader no longer logs warnings (1171)
    • PR 1176 - Provide platform_name in FCI L1C FDHSI reader. (1014)
    • PR 1175 - Add more flexible masking (1168)
    • PR 1173 - Check whether time dimension exists for timeseries
    • PR 1169 - Implement remote file search
    • PR 1165 - Add missing_ok option to find_files_and_readers (1165)
    • PR 1163 - Add TROPOMI NO2 LEVEL2 composites
    • PR 1161 - Add Effective_Pressure to NUCAPS reader
    • PR 1152 - amsr2 reader for l2 ssw product (1151)
    • PR 1142 - add filepatterns S-HSAF-h03B and S-HSAF-h05B to hsaf_grib.yaml
    • PR 1141 - Add night lights composites for ABI, AHI and AMI
    • PR 1135 - Fix reflectance and BT calibration in FCI FDHSI reader
    • PR 1100 - Add support for GPM IMERG data
    • PR 1051 - Return counts from satpy/avhrr_l1b_gaclac reader (1050)
    • PR 983 - Add group method to MultiScene
    • PR 812 - Add MOD06 support to 'modis_l2' reader (1200)
    • PR 720 - CMSAF CLAAS v2. reader (958)

    Documentation changes

    • PR 1223 - Add FCI Natural Color example page to sphinx docs
    • PR 1203 - Add link to MTSAT sample data
    • PR 1147 - Fix incomplete group_files docstring (1144)

    In this release 43 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.21.0(Apr 6, 2020)

    Issues Closed

    • Issue 1124 - Crop scene of visual spectrum of the sentinel 2 satellite (PR 1125)
    • Issue 1112 - Loading both abi and nwcsaf-geo confuses satpy into sometimes trying the wrong composite (PR 1113)
    • Issue 1096 - Saving an image with NinjoTIFFWriter is broken in satpy v.0.20.0 (PR 1098)
    • Issue 1092 - Avhrr l1b eps reader changes values of angles after reading (PR 1101)
    • Issue 1087 - Saving each scene in a separate image file
    • Issue 1075 - SEVIRI L1b netCDF reader not dask-compliant (PR 1109)
    • Issue 1059 - test against xarray master (PR 1095)
    • Issue 1013 - Fails to load solar_zenith_angle from SLSTR l1b data
    • Issue 883 - satpy resample call -> numby.ndarray deepcopy error (PR 1126)
    • Issue 840 - MTG-FCI-FDHSI reader has wrong projection (PR 845)
    • Issue 630 - Converting hdf5 attributes to string containing h5py.Reference of size 1 causes a AttributeError (PR 1126)

    In this release 11 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1131 - Fix geostationary utilities assuming a/b radii are always available
    • PR 1129 - Make the viirs_sdr reader return float32s
    • PR 1125 - Fix Scene.crop using PROJ definition to create target area definition (1124)
    • PR 1118 - Fix supported Python version in devguide
    • PR 1116 - Make an alias for the snow composite in viirs
    • PR 1115 - Fix mitiff writer to support sensors as a set
    • PR 1113 - Add sensor-name property to NWCSAF readers (1112, 1111)
    • PR 1107 - Raise an error if data and angle shapes don't match in NIRReflectance
    • PR 1106 - Scale valid range if available.
    • PR 1101 - Fix eps l1b angles computation returning non deterministic results (1092)
    • PR 1098 - Fix ninjotiff writer tests failing when pyninjotiff is installed (1096)
    • PR 1089 - Make sunz correction use available sunz dataset
    • PR 1038 - Switch to pyproj for projection to CF NetCDF grid mapping (1029, 1029)

    Features added

    • PR 1128 - Add tm5_constant_a and tm5_constant_b for tropomi_l2
    • PR 1126 - Update omps edr reader and hdf5_utils to handle OMPS SO2 data from FMI (883, 630)
    • PR 1121 - HY-2B scatterometer l2b hdf5 reader
    • PR 1117 - Add support for satpy.composites entry points
    • PR 1113 - Add sensor-name property to NWCSAF readers (1112, 1111)
    • PR 1109 - Fix dask and attribute issue in seviri_l1b_nc reader (1075)
    • PR 1095 - Switch to pytest in CI and add unstable dependency environment (1059)
    • PR 1091 - Add assembled_lat_bounds, assembled_lon_bounds and time variables
    • PR 1071 - Add SEVIRI L2 GRIB reader
    • PR 1044 - Set travis and appveyor numpy version back to 'stable'
    • PR 845 - MTG: get projection and extent information from file (840, 840)
    • PR 606 - Add enhanced (more natural) version of natural colors composite

    Documentation changes

    • PR 1130 - Add note about datatype in custom reader documentation
    • PR 1118 - Fix supported Python version in devguide
    Source code(tar.gz)
    Source code(zip)
  • v0.20.0(Mar 25, 2020)

    Issues Closed

    In this release 8 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1084 - Add latitude_bounds and longitude_bounds to tropomi_l2
    • PR 1078 - Tropomi l2 reader to handle more types of products (1077)
    • PR 1072 - Fix the omerc-bb area to use a sphere as ellps
    • PR 1066 - Rename natural_color_sun to natural_color in generic VIS/IR RGB recipes
    • PR 1063 - Fix eps infinite loop (924, 1004)
    • PR 1058 - Work around changes in xarray 0.15
    • PR 1057 - lowercase the sensor name
    • PR 1055 - Fix sst standard name
    • PR 1049 - Fix handling of paths with forward slashes on Windows
    • PR 1048 - Fix AMI L1b reader incorrectly grouping files
    • PR 1045 - Update hrpt.py for new pygac syntax
    • PR 1043 - Update seviri icare reader that handles differing dataset versions
    • PR 1042 - Replace a unicode hyphen in the glm_l2 reader
    • PR 1041 - Unify Dataset attribute naming in SEVIRI L2 BUFR-reader

    Features added

    • PR 1082 - Update SLSTR composites
    • PR 1079 - Metop level 2 EUMETCAST BUFR reader (1076)
    • PR 1067 - Add GOES-17 support to the 'geocat' reader
    • PR 1065 - Add AHI airmass, ash, dust, fog, and night_microphysics RGBs
    • PR 1064 - Adjust default blending in DayNightCompositor
    • PR 1061 - Add support for NUCAPS Science EDRs
    • PR 1052 - Delegate dask delays to pyninjotiff
    • PR 1047 - Remove deprecated abstractproperty usage (112)
    • PR 1020 - Feature Sentinel-3 Level-2 SST
    • PR 988 - Remove py27 tests and switch to py38
    • PR 964 - Update SEVIRI L2 BUFR reader to handle BUFR products from EUMETSAT Data Centre
    • PR 839 - Add support of colorbar
    • PR 811 - Daskify and test avhrr_l1b_aapp reader (809)

    Documentation changes

    • PR 1068 - Fix a typo in writer 'filename' documentation
    • PR 1056 - Fix name of natural_color composite in quickstart

    Backwards incompatible changes

    • PR 1066 - Rename natural_color_sun to natural_color in generic VIS/IR RGB recipes
    • PR 988 - Remove py27 tests and switch to py38

    In this release 31 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.19.1(Jan 10, 2020)

    Issues Closed

    • Issue 1030 - Geostationary padding results in wrong area definition for AHI mesoscale sectors. (PR 1037)
    • Issue 1029 - NetCDF (CF) writer doesn't include semi_minor_axis/semi_major_axis for new versions of pyproj (PR 1040)
    • Issue 1023 - RTD "Edit on Github" broken in "latest" documentation

    In this release 3 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1040 - Fix geostationary axis handling in CF writer (1029)
    • PR 1037 - Fix segment handling for non-FLDK sectors in the AHI HSD reader (1030)
    • PR 1036 - Fix ABI L1b/L2 time dimension causing issues with newer xarray
    • PR 1034 - Fix AMI geolocation being off by 1 pixel
    • PR 1033 - Fix avhrr_l1b_aapp reader not including standard_name metadata
    • PR 1031 - Fix tropomi_l2 reader not using y and x dimension names

    Features added

    • PR 1035 - Add additional Sentinel 3 OLCI 2 datasets
    • PR 1027 - Update SCMI writer and VIIRS EDR Flood reader to work for pre-tiled data

    Documentation changes

    • PR 1032 - Add documentation about y and x dimensions for custom readers

    In this release 9 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.19.0(Dec 30, 2019)

    Issues Closed

    • Issue 996 - In the sar-c_safe reader, add platform_name to the attribute. (PR 998)
    • Issue 991 - Secondary file name patterns aren't used if the first doesn't match
    • Issue 975 - Add HRV navigation to seviri_l1b_native-reader (PR 985)
    • Issue 972 - MTG-FCI-FDHSI reader is slow, apparently not actually dask-aware (PR 981)
    • Issue 970 - Pad all geostationary L1 data to full disk area (PR 977)
    • Issue 960 - Factorize area def computation in jma_hrit (PR 978)
    • Issue 957 - Rayleigh correction in bands l2 of the ABI sensor
    • Issue 954 - Mask composites using cloud products (PR 982)
    • Issue 949 - Make a common function for geostationnary area_extent computation (PR 952)
    • Issue 807 - Add a MIMIC-TPW2 reader (PR 858)
    • Issue 782 - Update custom reader documentation to mention coordinates and available datasets (PR 1019)
    • Issue 486 - Add GMS series satellite data reader

    In this release 12 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 1021 - Fix padding of segmented geostationary images
    • PR 1010 - Fix missing part in ahi_hrit file pattern
    • PR 1007 - Fix ahi_hrit expected segments
    • PR 1006 - Rename standard_name for various readers to be consistent
    • PR 993 - Fix VIIRS EDR Flood file patterns not working for AOI files (243)
    • PR 989 - Fix generation of solar and satellite angles when lon/lats are invalid
    • PR 976 - CF Writer Improvements
    • PR 974 - Fix available_composite_names including night_background static images (239)
    • PR 969 - Fix HDF4 handling of scalar attributes
    • PR 966 - Add the fire temperature products to AHI
    • PR 931 - Update coord2area_def.py

    Features added

    • PR 1012 - Implement a small cviirs speedup
    • PR 1011 - Provide only dask arrays to pyspectral's nir reflectance computation
    • PR 1009 - Add support for SEVIRI data from icare
    • PR 1005 - Remove unused reader xslice/yslice keyword arguments
    • PR 1003 - Update copyright header in readers. Add and fix docstrings.
    • PR 998 - Add platform name to attributes of sar_c_safe reader (996)
    • PR 997 - Add check if prerequisites is used
    • PR 994 - Add LAC support to the avhrr-gac-lac reader
    • PR 992 - Add hrv_clouds, hrv_fog and natural_with_night_fog composites to seviri.yaml
    • PR 987 - scene.aggregate will now handle a SwathDefinition
    • PR 985 - Add HRV full disk navigation for seviri_l1b_native-reader (975)
    • PR 984 - Add on-the-fly decompression to the AHI HSD reader
    • PR 982 - Add simple masking compositor (954)
    • PR 981 - Optionally cache small data variables and file handles (972)
    • PR 980 - Read the meta_data dictionary from pygac
    • PR 978 - Factorize area computation in hrit_jma (960)
    • PR 977 - Add a YAMLReader to pad segmented geo data (970)
    • PR 976 - CF Writer Improvements
    • PR 966 - Add the fire temperature products to AHI
    • PR 962 - add support for meteo file in OLCI L1B reader
    • PR 961 - Fix default radius_of_influence for lon/lat AreaDefintions
    • PR 952 - Adds a common function for geostationary projection / area definition calculations (949)
    • PR 920 - Transverse Mercator section added in cf writer
    • PR 908 - Add interface to pyresample gradient resampler
    • PR 858 - Mimic TPW Reader (807)
    • PR 854 - Add GOES-R GLM L2 Gridded product reader and small ABI L1b changes

    Documentation changes

    • PR 1025 - Switch to configuration file for readthedocs
    • PR 1019 - Add more information about creating custom readers (782)
    • PR 1018 - Add information to Quickstart on basics of getting measurement values and navigation
    • PR 1008 - Add documentation for combine_metadata function
    • PR 1003 - Update copyright header in readers. Add and fix docstrings.
    • PR 1001 - Get travis badge from master branch
    • PR 999 - Add FCI L1C reader short and long name metadata
    • PR 968 - Add information about multi-threaded compression with geotiff creation

    In this release 45 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.18.1(Nov 7, 2019)

  • v0.18.0(Nov 6, 2019)

    Issues Closed

    In this release 5 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 953 - Encode header attributes in CF writer
    • PR 945 - Fix bug in OLCI reader that caused multiple error messages to print (944)
    • PR 942 - Fix VIIRS EDR Active Fires not assigning a _FillValue to confidence_pct
    • PR 939 - Fix MERSI-2 natural_color composite using the wrong band for sharpening
    • PR 938 - Fix MultiScene.save_animation to work with new dask.distributed versions
    • PR 914 - Cleaning up and adding MERSI-2 RGB composites

    Features added

    • PR 955 - Code clean-up for SEVIRI L2 BUFR-reader
    • PR 953 - Encode header attributes in CF writer
    • PR 948 - Add the possibility to include scale and offset in geotiffs
    • PR 947 - Feature mitiff palette
    • PR 941 - Speed up cviirs tiepoint interpolation (940)
    • PR 935 - Adapt avhrr_l1b_gaclac to recent pygac changes
    • PR 934 - Update add_overlay to make use of the full pycoast capabilities
    • PR 911 - Add GK-2A AMI L1B Reader (737)
    • PR 886 - Reader for NWCSAF/MSG 2013 format (888)
    • PR 769 - Added initial version of an MSG BUFR reader and TOZ product yaml file
    • PR 586 - Update handling of reading colormaps from files in enhancements

    Documentation changes

    • PR 950 - Clarify documentation of orbital_parameters metadata (922)
    • PR 943 - Fix sphinx docs generation after setuptools_scm migration

    In this release 19 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
  • v0.17.1(Oct 8, 2019)

    Version 0.17.1 (2019/10/08)

    Issues Closed

    • Issue 918 - satpy 0.17 does not work with pyresample 1.11 (PR 927)
    • Issue 902 - background compositor with colorized ir_clouds and static image problem (PR 917)
    • Issue 853 - scene.available_composite_names() return a composite even the dependency is not fullfilled (PR 921)
    • Issue 830 - generic_image reader doesn't read area from .yaml file? (PR 925)

    In this release 4 issues were closed.

    Pull Requests Merged

    Bugs fixed

    • PR 925 - Fix area handling in StaticImageCompositor (830)
    • PR 923 - Make the olci l2 mask a bool array instead of floats
    • PR 921 - Fix Scene.available_composite_names showing unavailable composites (853)
    • PR 917 - Fix BackgroundCompositor not retaining input metadata (902)

    Features added

    Backwards incompatible changes

    • PR 921 - Fix Scene.available_composite_names showing unavailable composites (853)

    In this release 6 pull requests were closed.

    Source code(tar.gz)
    Source code(zip)
A light-weight, versatile XYZ tile server, built with Flask and Rasterio :earth_africa:

Terracotta is a pure Python tile server that runs as a WSGI app on a dedicated webserver or as a serverless app on AWS Lambda. It is built on a modern

DHI GRAS 531 Dec 28, 2022
Python 台灣行政區地圖 (2021)

Python 台灣行政區地圖 (2021) 以 python 讀取政府開放平台的 ShapeFile 地圖資訊。歡迎引用或是協作 另有縣市資訊、村里資訊與各種行政地圖資訊 例如: 直轄市、縣市界線(TWD97經緯度) 鄉鎮市區界線(TWD97經緯度) | 政府資料開放平臺: https://data

WeselyOng 12 Sep 27, 2022
Satellite imagery for dummies.

felicette Satellite imagery for dummies. What can you do with this tool? TL;DR: Generate JPEG earth imagery from coordinates/location name with public

Shivashis Padhi 1.8k Jan 03, 2023
Implemented a Google Maps prototype that provides the shortest route in terms of distance

Implemented a Google Maps prototype that provides the shortest route in terms of distance, the fastest route, the route with the fewest turns, and a scenic route that avoids roads when provided a sou

1 Dec 26, 2021
This app displays interesting statistical weather records and trends which can be used in climate related research including study of global warming.

This app displays interesting statistical weather records and trends which can be used in climate related research including study of global warming.

0 Dec 27, 2021
This is the antenna performance plotted from tinyGS reception data.

tinyGS-antenna-map This is the antenna performance plotted from tinyGS reception data. See their repository. The code produces a plot that provides Az

Martin J. Levy 14 Aug 21, 2022
Platform for building statistical models of cities and regions

UrbanSim UrbanSim is a platform for building statistical models of cities and regions. These models help forecast long-range patterns in real estate d

Urban Data Science Toolkit 419 Dec 30, 2022
A Django application that provides country choices for use with forms, flag icons static files, and a country field for models.

Django Countries A Django application that provides country choices for use with forms, flag icons static files, and a country field for models. Insta

Chris Beaven 1.2k Jan 03, 2023
A ninja python package that unifies the Google Earth Engine ecosystem.

A Python package that unifies the Google Earth Engine ecosystem. EarthEngine.jl | rgee | rgee+ | eemont GitHub: https://github.com/r-earthengine/ee_ex

47 Dec 27, 2022
LEOGPS - Satellite Navigation with GPS on Python!

LEOGPS is an open-source Python software which performs relative satellite navigation between two formation flying satellites, with the objective of high accuracy relative positioning. Specifically,

Samuel Low 50 Dec 13, 2022
Imperial Valley Geomorphology Map

Roughly maps the extent of basins, basin edges, and mountains in the Imperial Valley by grouping terrain classes from the Iwahashi et al. 2021 California terrian classification model.

0 Dec 13, 2022
A Python package for delineating nested surface depressions from digital elevation data.

Welcome to the lidar package lidar is Python package for delineating the nested hierarchy of surface depressions in digital elevation models (DEMs). I

Qiusheng Wu 166 Jan 03, 2023
Record railway train route profile with GNSS tools

Train route profile recording with GNSS technology based on ARDUINO platform Project target Develop GNSS recording tools based on the ARDUINO platform

tomcom 1 Jan 01, 2022
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

6k Jan 02, 2023
Imports VZD (Latvian State Land Service) open data into postgis enabled database

Python script main.py downloads and imports Latvian addresses into PostgreSQL database. Data contains parishes, counties, cities, towns, and streets.

Kaspars Foigts 7 Oct 26, 2022
Download and process satellite imagery in Python using Sentinel Hub services.

Description The sentinelhub Python package allows users to make OGC (WMS and WCS) web requests to download and process satellite images within your Py

Sentinel Hub 659 Dec 23, 2022
Software for Advanced Spatial Econometrics

GeoDaSpace Software for Advanced Spatial Econometrics GeoDaSpace current version 1.0 (32-bit) Development environment: Mac OSX 10.5.x (32-bit) wxPytho

GeoDa Center 38 Jan 03, 2023
Fiona reads and writes geographic data files

Fiona Fiona reads and writes geographic data files and thereby helps Python programmers integrate geographic information systems with other computer s

987 Jan 04, 2023
Manipulation and analysis of geometric objects

Shapely Manipulation and analysis of geometric objects in the Cartesian plane. Shapely is a BSD-licensed Python package for manipulation and analysis

3.1k Jan 03, 2023
glTF to 3d Tiles Converter. Convert glTF model to Glb, b3dm or 3d tiles format.

gltf-to-3d-tiles glTF to 3d Tiles Converter. Convert glTF model to Glb, b3dm or 3d tiles format. Usage λ python main.py --help Usage: main.py [OPTION

58 Dec 27, 2022