pax_global_header 0000666 0000000 0000000 00000000064 12140714734 0014515 g ustar 00root root 0000000 0000000 52 comment=19fbe5974ca82cd231b659589a64c5098e5ba87f
jpylyzer-1.10.1/ 0000775 0000000 0000000 00000000000 12140714734 0013465 5 ustar 00root root 0000000 0000000 jpylyzer-1.10.1/.travis.yml 0000664 0000000 0000000 00000000257 12140714734 0015602 0 ustar 00root root 0000000 0000000 language: python
python:
- "2.7"
- "3.2"
- "3.3"
install:
- python setup.py bdist --help-formats
- python setup.py install
script:
- python -m unittest discover
jpylyzer-1.10.1/BUILD_HOWTO_LINUX 0000664 0000000 0000000 00000004111 12140714734 0016203 0 ustar 00root root 0000000 0000000 This howto explains how to build 'jpylyzer' as an linux executable so that python is no longer a dependency.
This was done because there was an incompatibility between 'jpylyzer' and python version below 2.7.
## INSTRUCTIONS (APPLIES TO PYINSTALLER 2)
1. Download 'pyinstaller' from:
http://www.pyinstaller.org/
2. Unpack it:
tar -xjf pyinstaller-2.0.tar.bz2
3. compile (in below example result as one single file):
python pyinstaller.py --onefile ./jpylyzer/jpylyzer.py
4. look in the directory 'dist'.
Voila!
## INSTRUCTIONS (APPLIES TO PYINSTALLER 1.5)
With PyInstaller 1.5 (which I think is the version that is still used on the Amazon Webcloud setup)
you first need to make a .spec file, so the compilation involves two steps:
python Makespec.py --onefile ./jpylyzer/jpylyzer.py
python pyinstaller.py jpylyzer.spec
## NOTE ON JPYLYZER MAKEFILE
The current version of the makefile uses the following commands:
pymakespec --onefile ./jpylyzer/jpylyzer.py
pyinstaller jpylyzer.spec
Apparently pymakespec/pyinstaller are helper scripts that call Makespec.py and pyinstaller.py, respectively.
This works on the Amazon Webcloud setup, but for local builds you will need to change these lines
so that the actual Python scripts are called. To make things slightly more complicated PyInstaller
has no default installation location, so you'll have to insert the file paths that apply to you
system, e.g.:
python /home/johan/pyinstall/Makespec.py --onefile ./jpylyzer/jpylyzer.py
python /home/johan/pyinstall/pyinstaller.py jpylyzer.spec
## BUILDING THE DEBIAN PACKAGES LOCALLY
You can build jpylyzer locally using:
dpkg-buildpackage -tc
However this will result in an error because of a missing changelog file. Apparently it is generated
automatically on the Amazon Webcloud setup, but I'm not exactly sure how! For testing purposes you may
use a dummy changelog as a workaround.
In addition you will need to edit the makefile as described in the previous section.
More info on all this here:
http://www.openplanetsfoundation.org/blogs/2013-04-23-adventures-debian-packaging
Updated 2/5/2013 by JvdK jpylyzer-1.10.1/BUILD_HOWTO_WIN32 0000664 0000000 0000000 00000002323 12140714734 0016111 0 ustar 00root root 0000000 0000000 This howto explains how to build 'jpylyzer' as a 32-bit Windows
executable so that Python is no longer a dependency. Procedure described
here will also pack binaries in a distribution-ready ZIP file.
This was tested under Windows 7 using PyInstaller 2.0. (I haven't found
a way to build actual Win64 binaries, since the build packages don't
appear to support this yet). For older PyInstaller versions (1.5) things
are a bit more complicated, so use version 2 if possible.
SET-UP AND CONFIGURATION (YOU ONLY NEED TO GO THROUGH THESE STEPS ONCE):
1. Download and install 'PyWin32' (Python for Windows extensions) from:
http://sourceforge.net/projects/pywin32/files/
2. Download 'pyinstaller' from
http://www.pyinstaller.org/
3. Unpack/unzip it with your favourite file archive manager. PyInstaller
is now ready for use.
4. Open the batch file 'buildWin32.bat' which is part of the jpylyzer
distribution, and update the configuration variables 'python' and
'pathPyInstaller' according to your own system
BUILDING THE WIN32 DISTRIBUTION:
1. Run the batch file from the repo's root dir ( i.e. the one in which
it is located):
buildWin32.bat
2. Look at the zip file in the directory 'dist_win32'.
Voila!
jpylyzer-1.10.1/LICENSE 0000664 0000000 0000000 00000002050 12140714734 0014467 0 ustar 00root root 0000000 0000000 Copyright:
KB / National Library of the Netherlands, Open Planets Foundation
License:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see .
On Debian systems, the complete text of the GNU Lesser General Public License
version 3 can be found in "/usr/share/common-licenses/LGPL-3".
The Debian packaging is:
Copyright (C) 2012 Open Planets Foundation
and is licensed under the GPL version 3, see above.
jpylyzer-1.10.1/MANIFEST.in 0000664 0000000 0000000 00000000075 12140714734 0015225 0 ustar 00root root 0000000 0000000 recursive-include example_files *
recursive-include doc *.pdf jpylyzer-1.10.1/Makefile 0000664 0000000 0000000 00000000516 12140714734 0015127 0 ustar 00root root 0000000 0000000 build:
pymakespec --onefile ./jpylyzer/jpylyzer.py
pyinstaller jpylyzer.spec
@echo "Built in dist/jpylyzer"
install:
mv dist/jpylyzer $(DESTDIR)
clean:
rm -fR build
rm -fR dist
rm -f jpylyzer.spec
rm -f logdict2.7.2.final.0-1.log
rm -f logdict2.7.2.final.0-2.log
rm -f logdict2.7.2.final.0-3.log
rm -f warnjpylyzer.txt
jpylyzer-1.10.1/README.md 0000664 0000000 0000000 00000007161 12140714734 0014751 0 ustar 00root root 0000000 0000000 #jpylyzer
## About
*Jpylyzer* is a JP2 [(JPEG 2000 Part 1)][2] image validator and properties extractor. Its development was partially supported by the [SCAPE][4] Project. The SCAPE project is co-funded by the European Union under FP7 ICT-2009.4.1 (Grant Agreement number 270137).
## Command line use
### Usage
`usage: jpylyzer.py [-h] [--verbose] [--wrapper] [--version] ...`
### Positional arguments
`...` : input JP2 image(s), may be one or more (whitespace-separated) path expressions; prefix wildcard (\*) with backslash (\\) in Linux..
### Optional arguments
`-h, --help` : show this help message and exit;
`-v, --version` : show program's version number and exit;
`--verbose` : report test results in verbose format;
`--wrapper, -w` : wrap the output for individual image(s) in 'results' XML element.
## Output
Output is directed to the standard output device (*stdout*).
### Example
`jpylyzer.py rubbish.jp2 > rubbish.xml`
In the above example, output is redirected to the file 'rubbish.xml'.
### Outline of output elements
1. *toolInfo*: tool name (jpylyzer) + version.
2. *fileInfo*: name, path, size and last modified time/date of input file.
3. *isValidJP2*: *True* / *False* flag indicating whether file is valid JP2.
4. *tests*: tree of test outcomes, expressed as *True* / *False* flags.
A file is considered valid JP2 only if all tests return *True*. Tree follows JP2 box structure. By default only tests that returned *False* are reported, which results in an empty *tests* element for files that are valid JP2. Use the `--verbose` flag to get *all* test results.
5. *properties*: tree of image properties. Follows JP2 box structure. Naming of properties follows [ISO/IEC 15444-1 Annex I][2] (JP2 file format syntax) and [Annex A][3] (Codestream syntax).
## Documentation
*Jpylyzer* is fully documented by an exhaustive [User Manual][1]. Check it out!
[1]: https://github.com/openplanets/jpylyzer/blob/master/jpylyzer/doc/jpylyzerUserManual.pdf?raw=true
[2]: http://www.jpeg.org/public/15444-1annexi.pdf
[3]: http://www.itu.int/rec/T-REC-T.800/en
[4]: http://www.scape-project.eu/
## Changes
###1.10
Added *setup.py* and re-structured repo accordingly. This means that *jpylyzer* can now be built and installed with *distutils*.
###1.9
The following improvements were added by Adam Retter and Jaishree Davey of The National Archives (UK):
1. Unicode output
2. Possibility to specify multiple (sets of) images at command-line
3. Wrapper option that results in well-formed XML in case of multiple input images
4. Function *checkOneFile* now returns Element object (before: text string with XML)
In addition, this version includes several minor modifications that improve interoperability between Python 2.7 and Python 3.
###1.8
Added support for XMP metadata that are embedded in a UUID box.
###1.7
Added minimal support of the following optional codestream marker segments that were missing in previous versions:
+ Coding style component (COC) marker segment
+ Region-of-interest (RGN) marker segment
+ Quantization component (QCC) marker segment
+ Progression order change (POC) marker segment
+ Packet length, main header (PLM) marker segment
+ Packed packet headers, main header (PPM) marker segment
+ Tile-part lengths (TLM) marker segment
+ Component registration (CRG) marker segment
+ Packet length, tile-part header (PLT) marker segment
+ Packed packet headers, tile-part header (PPT) marker segment
For now jpylyzer just reports the presence of these marker segments if they were found in an image, without doing validating them or reporting any properties (i.e. the validator functions are empty).
jpylyzer-1.10.1/README.txt 0000664 0000000 0000000 00000001777 12140714734 0015177 0 ustar 00root root 0000000 0000000 Jpylyzer is a JP2 (JPEG 2000 Part 1) image validator and properties
extractor. Jpylyzer was specifically created to check that a JP2 file really
conforms to the format's specifications. Additionally jpylyzer is able to
extract a JP2's technical characteristics.
Requires Python 2.7 or later
usage: jpylyzer.py [-h] [--verbose] [--wrapper] [--version] ...
~Positional arguments~
... : input JP2 image(s), may be one or more (whitespace-separated) path
expressions; prefix wildcard (*) with backslash (\) in Linux..
~Optional arguments~
-h, --help : show this help message and exit;
-v, --version : show program's version number and exit;
--verbose : report test results in verbose format;
--wrapper, -w : wrap the output for individual image(s) in 'results' XML
element. Output
Output is directed to the standard output device (stdout).
Development partially supported by the SCAPE Project.
The SCAPE project is co-funded by the European Union under FP7
ICT-2009.4.1 (Grant Agreement number 270137).
jpylyzer-1.10.1/buildWin32.bat 0000664 0000000 0000000 00000003161 12140714734 0016100 0 ustar 00root root 0000000 0000000 :
:: Build 32 bit Windows jpylyzer binaries from Python script, and pack them in ZIP file
::
:: ZIP file includes license file, PDF User Manual and example files
::
:: Johan van der Knijff, 25 april 2013
::
:: Dependencies:
::
:: - Python 2.7 (PyInstaller doesn't work with Python 3 yet!)
:: - PyInstaller 2: http://www.pyinstaller.org/
:: - PyWin32 (needed by PyInstaller): http://sourceforge.net/projects/pywin32/files/
:: - a spec file with
::
@echo off
setlocal
::::::::: CONFIGURATION ::::::::::
:: Python
set python=c:\python27\python
:: Path to PyInstaller
set pathPyInstaller=c:\pyinstall\
:: Script base name (i.e. script name minus .py extension)
set scriptBaseName=jpylyzer
:: PyInstaller spec file that defines build options
set specFile=jpylyzer_win32.spec
:: Directory where build is created (should be identical to 'name' in 'coll' in spec file!!)
set distDir=.\dist_win32\
:: Executes jpylyzer with -v option and stores output to
:: env variable 'version'
set vCommand=%python% .\%scriptBaseName%\%scriptBaseName%.py -v
%vCommand% 2> temp.txt
set /p version= < temp.txt
del temp.txt
::::::::: BUILD ::::::::::::::::::
:: Build binaries
%python% %pathPyInstaller%\pyinstaller.py %specFile%
:: Generate name for ZIP file
set zipName=%scriptBaseName%_%version%_win32.zip
:: Create ZIP file
%python% zipdir.py %distDir%\jpylyzer %distDir%\%zipName%
::::::::: CLEANUP :::::::::::::::::
:: Delete build directory
rmdir build /S /Q
:: Delete jpylyzer directory in distdir
rmdir %distDir%\jpylyzer /S /Q
::::::::: PARTY TIME! :::::::::::::::::
echo /
echo Done! Created %zipName% in directory %distDir%!
echo /
jpylyzer-1.10.1/debian/ 0000775 0000000 0000000 00000000000 12140714734 0014707 5 ustar 00root root 0000000 0000000 jpylyzer-1.10.1/debian/control 0000664 0000000 0000000 00000001247 12140714734 0016316 0 ustar 00root root 0000000 0000000 Source: jpylyzer
Section: utils
Priority: extra
Maintainer: Open Planets Foundation
Build-Depends: debhelper (>= 7), perl
Standards-Version: 3.8.3
Homepage: https://github.com/openplanets/jpylyzer
Package: jpylyzer
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: JP2 (JPEG 2000 Part 1) validator and properties extractor.
Validator and feature extractor for JP2 (JPEG 2000 Part 1 - ISO/IEC 15444тАР1)
images. Jpylyzer was specifically created to check that a JP2 file really
conforms to the format's specifications. Additionally jpylyzer is able to
extract the technical characteristics of each image.
jpylyzer-1.10.1/debian/copyright 0000664 0000000 0000000 00000003100 12140714734 0016634 0 ustar 00root root 0000000 0000000 This work was packaged for Debian by:
David Tarrant on Wed, 01 Feb 2012 17:50:59 +0100
Rainer Schmidt on Wed, 01 Feb 2012 17:50:59 +0100
It was downloaded from:
https://github.com/openplanets/jpylyzer
Upstream Author(s):
Johan van der Knijff, Ren├й van der Ark (KB / National Library of the Netherlands),
Lars Buitinck (University of Amsterdam), Adam Retter, Jaishree Davey
(The National Archives, UK), Rui Castro, Helder Silva (KEEP Solutions)
Copyright:
KB / National Library of the Netherlands, Open Planets Foundation
License:
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see .
On Debian systems, the complete text of the GNU Lesser General Public License
version 3 can be found in "/usr/share/common-licenses/LGPL-3".
The Debian packaging is:
Copyright (C) 2012 Open Planets Foundation
and is licensed under the GPL version 3, see above.
jpylyzer-1.10.1/debian/dirs 0000664 0000000 0000000 00000000010 12140714734 0015562 0 ustar 00root root 0000000 0000000 usr/bin
jpylyzer-1.10.1/debian/docs 0000664 0000000 0000000 00000000066 12140714734 0015564 0 ustar 00root root 0000000 0000000 doc/jpylyzerUserManual.pdf
doc/jpylyzerUserManual.doc
jpylyzer-1.10.1/debian/jpylyzer.examples 0000664 0000000 0000000 00000000227 12140714734 0020340 0 ustar 00root root 0000000 0000000 example_files/readme.txt
example_files/balloon.jp2
example_files/balloon_trunc1.jp2
example_files/balloon_trunc2.jp2
example_files/balloon_trunc3.jp2
jpylyzer-1.10.1/debian/jpylyzer.manpages 0000664 0000000 0000000 00000000013 12140714734 0020306 0 ustar 00root root 0000000 0000000 jpylyzer.1
jpylyzer-1.10.1/debian/jpylyzer.pod 0000664 0000000 0000000 00000002601 12140714734 0017302 0 ustar 00root root 0000000 0000000 =head1 NAME
jpylyzer - JP2 (JPEG 2000 Part 1) image validator and properties extractor.
=head1 SYNOPSIS
jpylyzer [I] [I]
=head1 DESCRIPTION
JP2 (JPEG 2000 Part 1) image validator and properties extractor
(C) National Library of the Netherlands / Open Planets Foundation
=head1 OPTIONS
=over 8
=item B<-h, --help>
Show a help message and exit.
=item B<-v, --version>
Show program's version number and exit.
=item B<--verbose>
Report test results in verbose format.
=item B<--wrapper, -w>
Wrap output for individual image(s) in 'results' XML element.
=back
=head1 ARGUMENTS
=over 8
=item B
Input JP2 image(s), may be one or more (whitespace-separated) path expressions;
prefix wildcard (*) with backslash.
=back
=head1 BUGS
Please report bugs at https://github.com/openplanets/jpylyzer/issues.
=head1 AUTHORS
B was written by Johan van der Knijff and others.
This manual page was written by Rui Castro .
=head1 COPYRIGHT
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 3, or (at your option) any
later version.
On Debian GNU/Linux systems, the complete text of the GNU Lesser General
Public License can be found in '/usr/share/common-licenses/LGPL-3'.
=cut
jpylyzer-1.10.1/debian/manpage.xml.ex 0000664 0000000 0000000 00000015401 12140714734 0017455 0 ustar 00root root 0000000 0000000
. will be generated. You may view the
manual page with: nroff -man . | less'. A typical entry
in a Makefile or Makefile.am is:
DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl
XP = xsltproc -''-nonet -''-param man.charmap.use.subset "0"
manpage.1: manpage.xml
$(XP) $(DB2MAN) $<
The xsltproc binary is found in the xsltproc package. The XSL files are in
docbook-xsl. A description of the parameters you can use can be found in the
docbook-xsl-doc-* packages. Please remember that if you create the nroff
version in one of the debian/rules file targets (such as build), you will need
to include xsltproc and docbook-xsl in your Build-Depends control field.
Alternatively use the xmlto command/package. That will also automatically
pull in xsltproc and docbook-xsl.
Notes for using docbook2x: docbook2x-man does not automatically create the
AUTHOR(S) and COPYRIGHT sections. In this case, please add them manually as
... .
To disable the automatic creation of the AUTHOR(S) and COPYRIGHT sections
read /usr/share/doc/docbook-xsl/doc/manpages/authors.html. This file can be
found in the docbook-xsl-doc-html package.
Validation can be done using: `xmllint -''-noout -''-valid manpage.xml`
General documentation about man-pages and man-page-formatting:
man(1), man(7), http://www.tldp.org/HOWTO/Man-Page/
-->
]>
&dhtitle;&dhpackage;&dhfirstname;&dhsurname;Wrote this manpage for the Debian system.&dhemail;2012&dhusername;This manual page was written for the Debian system
(and may be used by others).Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License,
Version 2 or (at your option) any later version published by
the Free Software Foundation.On Debian systems, the complete text of the GNU General Public
License can be found in
/usr/share/common-licenses/GPL.&dhucpackage;&dhsection;&dhpackage;Prototype JP2 (JPEG 2000 Part 1) validator and properties extractor&dhpackage;jp2fileDESCRIPTIONPrototype JP2 (JPEG 2000 Part 1) validator and properties extractor.Output to stdout.
Example (output redirected to file 'rubbish.xml'):
jpylyzer.py rubbish.jp2 > rubbish.xml
Outline of output elements:
1. toolInfo: tool name (jpylyzer) + version.
2. fileInfo: name, path, size and last modified time/date of input file.
3. isValidJP2: "True"/"False" flag indicating whether file is valid JP2.
4. tests: tree of test outcomes, expressed as "True"/"False" flags.
File is considered valid JP2 only if all tests return "True". Tree follows
JP2 box structure.
5. properties: tree of image properies. Follows JP2 box structure. Naming of
properties follows ISO/IEC 15444-1 Annex I (JP2 file format syntax) and
Annex A (Codestream syntax).OPTIONSThe program follows the usual GNU command line syntax,
with long options starting with two dashes (`-'). A summary of
options is included below. For a complete description, see the
info1 files.shows a help message and exit.show program's version number and exit.BUGSThe upstreams BTS can be found
at .
jpylyzer-1.10.1/debian/rules 0000664 0000000 0000000 00000003175 12140714734 0015772 0 ustar 00root root 0000000 0000000 #!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
export DH_COMPAT=5
%:
dh $@
DEB_INSTALL_MANPAGES_jpylyzer = jpylyzer.1
config.status:
dh_testdir
# Add here commands to configure the package.
# ./configure
build: build-stamp
make build
pod2man --section=1 --release=$(VERSION) --center "" debian/jpylyzer.pod > jpylyzer.1
build-stamp: config.status
dh_testdir
touch $@
clean:
dh_testdir
dh_testroot
rm -f build-stamp
# rm -f config.sub config.guess
rm -f jpylyzer.1
make clean
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
# Add here commands to install the package
$(MAKE) install DESTDIR=debian/jpylyzer/usr/bin
dh_makeshlibs
dh_shlibdeps
# rm -f config.log
# rm -f config.status
# Build architecture-deposndent files here.
binary-arch: build install
# We have nothing to do by default.
# Build architecture-independent files here.
binary-indep: install
dh_testdir
dh_testroot
dh_installchangelogs
dh_installdocs
dh_installexamples
# dh_installdebconf
dh_installman
dh_link
dh_compress
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
jpylyzer-1.10.1/debian/templates 0000664 0000000 0000000 00000000571 12140714734 0016633 0 ustar 00root root 0000000 0000000 Template: jpylyzer/use_taverna
Type: boolean
Description: Do you want to use taverna to run your jpylyzer?
We would like to know if you want to use taverna to run jpylyzer.
Template: jpylyzer/use_hadoop
Type: boolean
Description: Do you want to use hadoop to run your jpylyzer?
We would like to know if you want to use hadoop to run jpylyzer in a multi-node cluster setting.
jpylyzer-1.10.1/doc/ 0000775 0000000 0000000 00000000000 12140714734 0014232 5 ustar 00root root 0000000 0000000 jpylyzer-1.10.1/doc/jpylyzerUserManual.doc 0000664 0000000 0000000 00003227000 12140714734 0020612 0 ustar 00root root 0000000 0000000 ╨╧рб▒с > ■ ╤ ╙ ■ ╟ ╚ ╔ ╩ ╦ ╠ ═ ╬ ╧ ╨ ┘ Z ┘ А ье┴ {└ °┐ ,▐ bjbjzфzф хд О О жY ) I ╖ @$ @$ Ъ1 v 2 T d2 d2 d2 d ╚2 ╚2 ╚2 ░ x3 Ф9 ╝ ╚2 9 V PE ш! 8g ( `g ▄