Version 3.2.0 (unreleased)
- Change default visible band output to apply '/ cos(SZA)'. Use '--normalized-radiances' for old behavior.
- Support for additional VIIRS EDRs, including
- Aerosol Optical Depth (AOD)
- Cloud Top Height and Cloud Top Temperature
- Surface Reflectances, including True Color
- Vegetation Indices (NDVI, EVI)
- Support added for FY-3E MERSI-LL instrument
- Re-organization of software directories
- Optimizations
- Bug fixes
- New Implementation "polar2grid.sh -r <reader> -w <writer>"
- Reader name changes and replacements
- Writer name changes
- NOAA20 output file names standardized to "noaa20" prefix
- Alpha Band now included as default. Use
--fill-value 0
to not include - Specify number of CPU's to use
--num-workers <num>
--list-products
and--list-product-all
now available.- Scaling ".ini" files no longer supported. Replaced with ".yaml"
- Longer list of updates included in the documentation
- Add FY-3C VIRR reader
- Add MERSI-2 reader
- Add VIIRS EDR Flood reader
- Add VIIRS EDR Active Fire reader
- Add "overlay.sh" script for overlaying active fire products
- Add '--borders-width' flag to "add_coastlines.sh"
- Fix AVHRR reader not masking bad 0 values
- Fix MIRS reader not using valid range properly
- Fix CREFL reader not reading negative reflectances
- Fix ratio sharpening calculating bad ratios for dark or invalid regions
- Fix VIIRS and MODIS false color by using the green band for sharpening
- Fix AMSR2 L1B scaling for PNG creation (amsr2_png.ini)
- Fix NinJo writer not using backend config command line option
- Phase out legacy <reader>2<writer>.sh scripts and replace with polar2grid.sh <reader> <writer> implementation. Although the legacy scripts are still supported in Version 2.2, they are no longer documented.
- Add new AWIPS NetCDF writer "scmi".
- Add new grid definitions for 300m, 750m and 1km AWIPS SCMI tiled sectors LCC, Polar, Mercator, and Pacific.
- Add ACSPO SST reader.
- Add CLAVR-x Cloud Product reader.
- Fix scaling sometimes using the wrong configuration on certain platforms.
- Fix MODIS navigation calculations over the prime meridian.
- Add 'hncc_dnb' VIIRS product.
- Add JPSS-1/NOAA-20 support.
- Start using Pytroll SatPy library for various features
- Phasing out of legacy <reader><writer>.bash scripts and replacing with polar2grid.sh <reader> <writer> implementation.
- Add ability to output float geotiffs
- Add ability to store geotiff tiles instead of strips
- Fix fornav bug for non-float inputs (unused in most cases)
- Add add_colormap.sh script for adding color tables to geotiffs
- Add add_coastlines.sh script for adding borders, coastlines, rivers, etc to geotiffs
- Add basic NUCAPS reader (via SatPy)
- Add VIIRS L1B reader (via SatPy)
- Add AMSR2 L1B reader (via SatPy)
- Add MIRS reader
- Change default fornav-d flag in most glue scripts to 1
- Adjust true/false color scaling to be more continuous (similar result)
- Add AWIPS Puerto Rico Grid (210)
- Add polar_alaska dynamic grid
- New version of ShellB3 for C/python dependencies
- Fix geotiff geotransform to fix "off by half-pixel" bug.
Collaboration with the Pytroll project and the creation of the new SatPy library will result in large internal changes to Polar2Grid.
- SatPy is a replacement for the internals of Polar2Grid and a replacement for the Pytroll mpop package.
- Migrate Polar2Grid frontends to SatPy readers.
- Use SatPy for resampling and output writers, not just some readers.
- Rename frontends to readers, backends to writers, products to datasets.
- The remaining roadmap bullets are subject to change based on the Pytroll/Polar2Grid merger.
Create new grid file format for more flexibility
Allow resampling parameters to be configured based on dataset identifiers (satellite, instrument, etc)
Further fornav updates
- Move all module logic to C++ and remove cython dependency for this module (simple one function cython wrapper should be easy to remove)
- Try rewriting in either opencl or use openmp for multiprocess work, but we're getting to the point that fornav is not the slowest part of fornav (intermediate disk use)
Consider linking directly to PROJ.4 C library for ll2cr (removing pyproj dependency for ll2cr) to make it faster
Update rescaling with cython wrapper (test performance before committing to this)
- Needs change of clipping and masking logic so that its a decorator and can be easily excluded from cython code (which would use internal logic for those steps)
Add proper handling for product data being kept in memory (should speed up quite a few things)
- For better handling of in-memory data, should either let the user choose or determine it based on available memory
- Frontend's could choose logical default (VIIRS should probably write to disk, DR-RTV should stay in memory)
- Glue script can use memory analysis to come up with default but can be forced by command line argument
Python 3 Compatibility
- Fixed small bug in ll2cr where NaNs in navigation would cause a dynamic grid to never "fit"
- Rewrite of entire internal structure and behavior of polar2grid (Frontends, Backends, Remapping)
- Most frontends (VIIRS, MODIS, etc) are filename independent and try to determine type of file by internal structure
- Frontends now do operations based on what "products" are requested and return a "scene" object
- The polar2grid.core.meta module is added to provide structure to intermediate steps (Frontend -> Remap -> Backend) with the classes it offers
- Backends now operate on a gridded scene as a whole (with option for operating on one product at a time for some backends)
- A compositor role was added to provide a more flexible method of creating true/false color and other composited images
- ll2cr rewritten in python and cython (C-like python) to be faster and more accurate
- Grid determination has been essentially removed since "data fits in grid" decisions don't make sense unless you are in projection/grid space (ll2cr serves this purpose now)
- fornav has been rewritten to be accessed directly from python. The ms2gt version of fornav is no longer used.
- The ms2gt version of fornav was also modified to be faster and is still destributed with the software bundle (for this release only).
- GPD grids and support for them has been removed. PROJ.4 is more flexible, more widely used, and can actually support the AWIPS grids better.
- Python setup.py files updated to better meet common practice of other python projects (READMEs, classifiers, etc)
- Major changes to rescaling so that it can be specified independent of output data type and "increment_by_one"
- Removed AWIPS I support due to National Weather Service using AWIPS II from now on
- Added basic ACSPO and MIRS frontends
- Added HDF5 backend
- Fixed VIIRS CREFL C code and added custom version to repository (viirs_crefl)
- Added ability to use 'deg' units on grid origin definitions
- Latlong grids use degrees instead of radians (affects grid configurations and intermediate values in code)
- Added wgs84_fit_250 grid
- AWIPS grids "fixed" to actually align properly in AWIPS. The grid specification says ellipsoid earth, but my results say spherical.
- Non-TC geolocation used as backup option for VIIRS Frontend
- Fixed major bug when creating true colors (Issue #81). If the high resolution data resolved to a different dynamic grid than the low resolution data then a true color could not be made.
- Fixed frontends handling of symbolic links for files
- Various CREFL fixes
- Added MODIS geotiffs
- Added MODIS 250m bands
- Added MODIS Frontend (limited number of bands)
- Added CREFL Frontend (including true color glue script)
- Changed default geotiff data type to unsigned 8-bit integer
- Added option to provide user created grid configuration files
- NinJo backend added for DWD added
- Object oriented Frontend, Backend, and Rescaling
- Python version of ll2cr (still uses ms2gt fornav)
- Geotiff Backend
- Start of developer's guide in documentation