Change history¶
PyEPR 0.9.5 (23/08/2018)¶
- Fix compatibility with numpy >= 1.14:
np.fromstring()is deprecated. - Update the pypi sidebar in the documentation
- Use .rst extension for doc source files
- Fix setup script to not use system libs if epr-api sources are available
- Do not access fields of bands after that the product has been closed (fix a segmentation fault on windows)
- unittest2 is now required for Python < 3.4
PyEPR 0.9.4 (29/04/2018)¶
PyEPR 0.9.3 (02/05/2015)¶
- Fix PyEprExtension class in setup.py (closes gh-11)
- Updated internal EPR API version
PyEPR 0.9.2 (08/03/2015)¶
- Improved string representation of fields in case of
E_TID_STRINGdata type. Now bytes are decoded and represented as Python strings. - New tutorial GDAL export example
- Improved “Installation” and “Testing” sections of the user manual
PyEPR 0.9.1 (27/02/2015)¶
- Fix source distribution (missing EPR API C sources)
PyEPR 0.9 (27/02/2015)¶
basic support for update mode: products can now be opened in update mode (‘rb+’) and it is possible to call
epr.Field.set_elem()andepr.Field.set_elems()methods to setepr.Fieldelements changing the contents of theepr.Producton disk. This feature is not available in the EPR C API.new functions/methods and properties:
epr.Record.indexproperty: returns the index of theepr.Recordwithin theepr.Datasetepr.Band.datasetproperty: returns the sourceepr.Datasetobject containing the raw data used to create theepr.Band’s pixel valuesepr.Band._field_indexandepr.Band._elem_indexproperties: return theepr.Fieldindex (within theepr.Record) and the element index (within theepr.Field) containing the raw data used to create theepr.Band’s pixel valuesepr.Record.dataset_nameproperty: returns the name of theepr.Datasetfrom which theRecordhas bee readepr.Record.tot_sizeandepr.Field.tot_sizeproperties: return the total size in bytes of theepr.Recordandepr.Fieldrespectivelyepr.get_numpy_dtype()function: retrieves the numpy data type corresponding to the specified EPR type ID- added support for some low level feature: the _magic private attribute
stores the identifier of EPR C stricture, the
epr.Record.get_offset()returns the offset in bytes of theepr.Recordwithin the file, and theepr.Field.get_offset()method returns theepr.Fieldoffset within theepr.Record
improved functions/methods:
epr.Field.get_elems()now also handlesepr.E_TID_STRINGandepr.E_TID_TIMEdata types- improved
epr.get_data_type_size(),epr.data_type_id_to_str(),epr.get_scaling_method_name()andepr.get_sample_model_name()functions that are now defined using the cython cpdef directive - the
epr.Field.get_elems()method has been re-written to remove loops and unnecessary data copy - now generator expressions are used to implement __iter__ special methods
the index parameter of the
epr.Dataset.read_record()method is now optional (defaults to zero)the deprecated __revision__ variable has been removed
declarations of the EPR C API have been moved to the new
epr.pydthe const_char and const_void definitions have been dropped, no longer necessary with cython >= 0.19
minimum required version for cython is now 0.19
the
setup.pyscript has been completely rewritten to be more “pip friendly”. The new script uses setuptools if available and functions that use numpy are evaluated lazily so to give a chance to pip and setuptools to install dependencies, numpy, before they are actually used. This should make PyEPR “pip-installable” even on system there numpy is not already installed.the
testdirectory has been renamed intoteststhe test suite now has a
setUpModule()function that automatically downloads the ENVISAT test data required for test execution. The download only happens if the test dataset is not already available.tests can now be run using the
setup.pyscript:$ python3 setup.py test
enable continuous integration and testing in for Windows using AppVeyor (32bit only)
status badges for AppVeyor CI and PyPI added to the HTML doc index
PyEPR 0.8.2 (03/08/2014)¶
- fixed segfault caused by incorrect access to
epr.Dataset.descriptionstring in case of closed products - fixed a memory leak in
epr.Raster(closes gh-10) - the size parameters (src_width and src_height) in
epr.Band.create_compatible_raster()are now optional. By default aepr.Rasterwith the same size of the scene is created - the test suite have been improved
- improved the NDVI computation example
- updates sphinx config
- small clarification in the Installation section of the User Manual.
- EPR C API (version bundled with the official source tar-ball)
- in case of error always free resources before setting the error code. This avoids error shadowing in some cases.
- fixed a bug that caused reading of the incorrect portion of data in case of mirrored annotation datasets (closes gh-9)
- fixed a bug that caused incorrect data sub-sampling in case of mirrored datasets
PyEPR 0.8.1 (07/09/2013)¶
- fixed an important bug in the error checking code introduced in previous release (closes gh-8)
- fixed the NDVI example
- no more display link URL in footnotes of the PDF User Manual
PyEPR 0.8 (07/09/2013)¶
- now the
epr.Productobjects have aepr.Product.close()method that can be used to explicitly close products without relying on the garbage collector behaviour (closes gh-7) - new
epr.Product.closed(read-only) attribute that can be used to check if aepr.Producthas been closed - the
Productclass now supports context management so they can be used inwithstatements - added entries for
epr.__version__andepr.__revision__in the reference manual - the
epr.__revision__module attribute is now deprecated - some cythonization warnings have been fixed
- several small improvements to the documentation
PyEPR 0.7.1 (19/08/2013)¶
- fixed potential issues with conversion from python strings to
char* - new snapshot of the EPR C API sources (2.3dev):
- the size of the record tables has been fixed
- the EPR_NUM_PRODUCT_TABLES has been fixed
- fixed a missing prototype
- several GCC warnings has been silenced
- additional checks on return codes
- now and error is raised when an invalid flag name is used
- better factorization of Python 3 specific code
- use the CLOUD flag instead of BRIGHT in unit tests
- added function/method signature to all doc-strings for better interactive help
- several improvements to the documentation:
- updated the
README.txtfile to mention EPR C API sourced inclusion in the PyEPR 0.7 (and lates) source tar-ball - small fix in the installation instructions: the pip tool does not have a “–prefix” parameter
- always use the python3 syntax for the print function in all examples in the documentation
- links to older (and dev) versions of the documentation have been added in the man page of the HTML doc
- removed date form the doc meta-data. The documentation build date is reported in the front page of the LaTeX (PDF) doc and, starting from this release, in the footer of the HTML doc.
- the Ohloh widget has been added in the sidebar of the HTML doc
- improved the regexp for detecting the SW version in the :file`setup.py` script
- formatting
- updated the
PyEPR 0.7 (04/08/2013)¶
more detailed error messages in case of open failures
new sphinx theme for the HTML documentation
Travis-CI has been set-up for the project
now the source tar-ball also includes a copy of the EPR C API sources so that no external C library is required to build PyEPR.
This features also makes it easier to install PyEPR using pip.
The user can still guild PyEPR against a system version of the ERP-API library simply using the –epr-api-src option of the
setup.pyscript with “None”” as value.The ERP C API included in the source tar-ball is version 2.3dev-pyepr062, a development and patched version that allows the following enhancements.
- support for ERS products in ENVISAT format
- support for ASAR products generated with the new ASAR SW version 6.02 (ref. doc. PO-RS-MDA-GS-2009_4/C
- fix incorrect reading of “incident_angle” bands (closes gh-6). The issue is in the EPR C API.
PyEPR 0.6.1 (26/04/2012)¶
- fix compatibility with cython 0.16
- added a new option to the setup script (–epr-api-src) to build PyEPR using the EPR-API C sources
PyEPR 0.6 (12/08/2011)¶
PyEPR 0.5 (25/04/2011)¶
- stop using
PyFile_AsFile()that is no more available in Python 3 - now documentation uses intersphinx capabilities
- code examples added to documentation
- tutorials added to documentation
- the LICENSE.txt file is now included in the source distribution
- the cython construct
with nogilis now used instead of callingPy_BEGIN_ALLOW_THREADS()andPy_END_ALLOW_THREADS()directly - dropped old versions of cython; now cython 0.14.1 or newer is required
- suppressed several constness related warnings
PyEPR 0.4 (10/04/2011)¶
- fixed a bug in the
epr.Product.__str__(),Dataset.__str__()anderp.Band.__repr__()methods (bad formatting) - fixed
epr.Field.get_elems()method for char and uchar data types - implemented
epr.Product.read_bitmask_raster(), now theepr.ProductAPI is complete - fixed segfault in
epr.Field.get_unit()method when the field has no unit - a smaller dataset is now used for unit tests
- a new tutorial section has been added to the user documentation
PyEPR 0.3 (01/04/2011)¶
- version string of the EPR C API is now exposed as module attribute
epr.EPR_C_API_VERSION - implemented
__repr__,__str__,__eq__,__ne__and__iter__special methods - added utility methods (not included in the C API) like:
- fixed a logic error that caused empty messages in custom EPR exceptions
PyEPR 0.2 (20/03/2011)¶
- sphinx documentation added
- added docstrings to all method and classes
- renamed some method and parameter in order to avoid redundancies and have a more pythonic API
- in case of null pointers a
epr.EPRValueErroris raised - improved C library shutdown management
- introduced some utility methods to
epr.Productandepr.Recordclasses
PyEPR 0.1 (09/03/2011)¶
Initial release