Jpylyzer 2.1.0 release

03 October 2022

Following the August release candidate, a stable version of Jpylyzer 2.1 is out now. This release only introduces some relatively minor changes, compared against the earlier 2.0 release.

Reporting of packet-level codestream markers

Tim Lander of Hexagon Geospatial submitted a contribution that adds reporting of properties from the PLM and PLT marker segments (packet-length markers segments at the main header and tile-part level, respectively). Shortly afterwards, Aaron Boxer posted a feature request for abbreviated output on these very same PLT markers, as the PLT output would become excessive for large satellite images (which apparently always contain PLT markers, and lots of them!).

To reconcile these (at first sight conflicting) needs, I added the new --packetmarkers command-line switch. This affects the following marker segments:

  • Packet length, main header (PLM) marker segment
  • Packet length, tile-part header (PLT) marker segment
  • Packed packet headers, main header (PPM) marker segment
  • Packed packet headers, tile-part header (PPT) marker segment

By default, Jpylyzer 2.1 won’t report detailed output on any of these packet-level codestream markers, but instead only report their number of occurrences. At the main header level these occurrences are reported using the new plmCount and ppmCount elements , and at the tile-part level using the pltCount and pptCount elements. Full output on individual packet-level markers is only reported if the user provides the --packetmarkers switch.

The newly updated jpylyzer 2.1 XSD schema reflects these changes.

Automated unit tests using Jpylyzer test corpus

We also made the release process more efficient by implementing unit tests based on the jplyzer-test-files corpus.

Automatic detection of missing libraries in Jython

Thomas Ledoux (Bibliothèque nationale de France) submitted a contribution that handles missing libraries in case Jpylyzer is used in conjuction with Jython (but see the remarks about Jython in the next section!).

End of Python 2.7 support

Jpylyzer has always been compatible with both Python 3 and Python 2.7, but maintenance of Python 2.7 stopped in 2020. Because of this, Python 2.7 support will most likely be removed in Jpylyzer 2.2. This 2.1 release still works with Python 2.7, but you will see a deprecation warning. We strongly urge you to upgrade to Python 3 if you haven’t done so already. Jython users should take note that a Python 3 compatible implementation of Jython hasn’t materialised yet, so it might be advisable to look out for an alternative to Jython.

Miscellaneous changes

Finally, this release includes several small bug fixes, and some improvements to the documentation.

Installation with pip

For a fresh single-user install use:

pip install jpylyzer --user

To upgrade an existing version of Jpylyzer, use:

pip install jpylyzer --upgrade --user

Installation from binaries

Alternatively, you can use the binaries that are available from the right-hand bar of this site.

As always, the Windows binaries are completely stand-alone, and don’t require Python on your machine. Linux users can use the Debian package (which does require Python).

User Manual

An updated User Manual for Jpylyzer 2.1 is available here.

Happy jpylyzing!