version 1.0

 - First release

version 2.1
 - Introduction of configure options
	--with-fann (when FANN is installed, needed for pkclassify_nn)
	--with-las (when LIBLAS is installed, needed for pklas2img)
 - Introduction of new tools, now includes:
	pkascii2img
	pkclassify_nn
	pkcreatect
	pkcrop
	pkdiff
	pkdumpimg
	pkdumpogr
	pkegcs
	pkextract
	pkfillnodata
	pkfilter
	pkgetmask
	pkinfo
	pklas2img
	pkmosaic
	pkndvi
	pkpolygonize
	pkreclass
	pksetmask
	pksieve
	pkstat
	pkstatogr
version 2.2
	bug fixes
version 2.3
	bug fixes
version 2.4
 - configure.ac
	gdal 1.8 required for pkextract (member function Centroid in OGRMultiPolygon)
	New configure options (--enable instead of --with)
	--enable-fann (when FANN is installed, needed for pkclassify_nn)
	--enable-las (when LIBLAS is installed, needed for pklas2img)
	--enable-nlopt (when NLOPT is installed, needed for pksensormodel and pkgetchandelier)
 - OptFactory.h (added)
	factory class for nlopt::opt (selecting algorithm via string)
 - OptionPk
	changed layout of help info to Markdown format as input for Doxygen
 - Filter2d
	support filtering of matrix (doit with Vector2d arguments) (to create DTM according to P. Bunting)
 - FileReaderLas
	support class filters
 - ImgReaderGdal.h
	support of polygons in readData
 - ImgReaderGdal.cc
	in addition to internal setNoData member variable, also support GDALSetNoData
 - ImgWriterGdal.cc
	in addition to internal setNoData member variable, also support GDALSetNoData
 - ImgWriterOGR.h
	renamed ascii2shape to ascii2ogr, support csv file in ascii2ogr
 - ImgWriterOgr.cc
	renamed ascii2shape to ascii2ogr, support csv file in ascii2ogr
 - pkcrop
	changed default option for color table to empty vector
 - pkinfo
	support of nodata value when calculating histogram and image statistics
	options min and max are now set with -min (--min) and -max (--max)
	option min and max now per default empty and can be set individually for calculating histogram
	segmentation fault with option -ct if no color table was defined
	default value of x_opt empty (no longer -1 to read entire line)
 - pkfilter
	bug solved in update of progress bar
	support of standard deviation
	default empty classes
	bug solved in down option: spatial resolution was not stored properly
	directional morphological filtering now supports multiple angles
 - pkgetmask
	options min and max are now set with -min (--min) and -max (--max)
 - pkstatogr
	options min and max are now set with -min (--min) and -max (--max)
 - pkclassify_svm
	do not output input file if no input data was defined in verbose mode
	update of header information
	adding some short options
	support of polygon ogr input file
 - pkclassify_nn
	support of cross validation
	adding some short options
 - pkfs_svm (added)
	feature selection tool for svm classification
 - pkfs_nn (added)
	feature selection tool for nn classification
 - pkopt_svm (added)
	optimization tool for svm classification (optimize ccost and gamma using NLOPT)
 - pkascii2ogr
	tool to create simple vector files from coordinates in ASCII file (points or polygon)
 - pksensormodel
	tool to model pushbroom sensor (with optimization of boresight angles using NLOPT)
 - pkascii2ogr
	support csv input file
 - pklas2img
	support DTM according to Bunting (slightly adapted version of Chang2003, including a median filter after morphological operator)
 - Doxyfile
	support doxygen to document code
 - doc
	directory for doxy input files

version 2.4.1
 - pkfilterascii
	filter spectra in ASCII file (including wavelet transform)
 - pkfilter
	discrete wavelet transform (dwtForward, dwtInverse, dwtQuantize)
 - pkclassify_svm
	priors for input vector file
	todo: take priors into account for cross validation
	ordering of labels before training
 - pkclassify_nn
	priors for input vector file
	todo: take priors into account for cross validation
	ordering of labels before training
version 2.4.2
 - general
	removed using namespace std from header files
 - clean up of using namespace std in header files
 - apps/Makefile.am
	add GSL_LIBS to AM_LDFLAGS and LDADD
	todo: remove redundancy in AM_LDFLAGS and LDADD
 - PosValue.h
	remove using namespace std;
 - StatFactory.h
	 (interpolateUp): adapt to new version of GSL library, which does not support extrapolation. Currently no real extrapolation, but just solved by repeating first/last values
 - FileReaderAscii
	corrected error for constructor with fieldseparator argument
	corrected type for npos (should be size_t)
 - pkcrop
	changed projection option to -a_srs conform to gdal utilities
 - pkmosaic
	changed projection option to -a_srs conform to gdal utilities
 - pkascii2img
	changed projection option to -a_srs conform to gdal utilities
 - pkascii2ogr
	changed projection option to -a_srs conform to gdal utilities
 - pkdiff
	introduced short option -m for mask
 - pkinfo
	bug fixed with -min and -max in hist (thanks to Giuseppe Amatuli for noticing)
	changed projection option to -a_srs conform to gdal utilities
 - pkfilter
	new methods for scrambling and shifting images
	update help info for support of of even kernel sizes
 - Filter2d
	added support for even kernel sizes
 - pkstatogr
	make histogram more similar to pkstat with support of relative option
 - pklas2img
	correct for wrong include path for FileReaderLas.h (lasclasses instead of fileclasses)
	changed projection option to -a_srs conform to gdal utilities
 - pkfillnodata
	default maximum distance changed from 3 to 0 (infinity)
 - pkclassify_nn.h
	support reading ogr files with single feature (one band only: "B" or "Band")
 - pkclassify_nn.cc
	changed create_sparse to create_spare_array due to error in FANN...
	option -n for number of neurons
	cross validation parameter can not be 1
 - pkfs_nn.cc
	cross validation parameter can not be 1
	solved some bugs
 - pkclassify_svm.cc
	cross validation parameter can not be 1
 - pkopt_svm.cc
	cross validation parameter can not be 1
 - pkfs_svm.cc
	cross validation parameter can not be 1
	- pkstat.cc->pkstatascii.cc
	renamed to pkstatascii.cc to avoid confusion with raster data (e.g., pkinfo --stat)
	support of transposed output

version 2.4.3
 - StatFactory.h
	corrected bug in interpolateUp (in case x_out < x_in)
 - pkclassify_nn
	option msknodata and nodata to set nodata value in mask and classified image
 - pkclassify_svm
	option msknodata and nodata to set nodata value in mask and classified image
 - pkcrop
	option nodata to set nodata value
 - pkdiff
	option nodata to set nodata value
 - pkenhance
	option nodata to set nodata value
 - pkgetmask
	option nodata to set nodata value
 - pkinfo
	option nodata to set nodata value
 - pklas2img
	option nodata to set nodata value
 - pkndvi
	option nodata to set nodata value
 - pkreclass
	option nodata to set nodata value
 - pksetmask
	option nodata to set nodata value
 - pkdumpimg
	option srcnodata and dstnodata to set nodata value in source and destination image
 - pkmosaic
	option srcnodata and dstnodata to set nodata value in source and destination image
 - pkextract
	option msknodata to set nodata value in mask
 - pksetmask
	option msknodata to set nodata value in mask

version 2.5
 - ImgReaderOgr
	support sqlite: read training file with small case band names b0, b1, ...
 - ImgReaderGdal and ImgWriterGdal
	re-design of geotransform
 - ImgReaderGdal
	support of scaling and offset for reading raster bands
 - pkextract
	support other ogr file formats than ESRI Shape (e.g, using option -f SQLite)
	support multiple layers
	deprecated cbox and rbox
 - pkdiff
	support other ogr file formats than ESRI Shape (e.g, using option -f SQLite)
	support multiple layers
 - pkeditogr
	support other ogr file formats than ESRI Shape (e.g, using option -f SQLite)
	support multiple layers
 - Filter2d.h
	renamed mask to nodata
 - pkinfo
	hist: corrected nan when min=max
	min and max changed to src_min and src_max (limit source values for histogram)
	support for options -min and -max in addition to minmax (-mm): show min and max independently
 - pkstatascii
	min and max changed to src_min and src_max (limit source values for histogram)
	support for options -min and -max in addition to minmax (-mm): show min and max independently
 - pkfilter
	corrected bug in 2d wavelet transform forward and inverse
	renamed mask to nodata
 - pkndvi
	changed minmax option to min and max. Min and max values now apply to scaled values
 - pklas2img
	moved post filtering to pkfilterdem
	changed some option names
 - pkfilterdem
	new utility (moved from pklas2ig)

version 2.5.1
 - pkinfo
	-stats instead of -stat to be conform to gdalinfo
	bin values match actual values in case nbin=max-min+1
 - pkstatascii
	bin values match actual values in case nbin=max-min+1
 - pkstatogr
	bin values match actual values in case nbin=max-min+1
 - pkextract
	support sum rule
 - pkfilter
	support of density filter
	debug down option (forgot to adapt xres and yres)
	no automatic normalization user provided filter taps
 - pkcrop
	correct bounding box when dx_opt and dy_opt are set
 - pksieve
	retain nodata in pksieve when mask is set
version 2.5.2
 - configure script: GDAL>=1.10.0 is required for pkdiff
 - programs ported to windows and GUI with Qt
	removed underscore for QProcess in Windows
 - algorithms
	ConfusionMatrix.h: must find exact match in getClassIndex
 - pkinfo
	distinct long options
 - pkclassify_svm -> pksvm
	removed underscore for QProcess in Windows
 - pkclassify_nn -> pkann
	removed underscore for QProcess in Windows
 - pkregression_nn -> pkregann
	removed underscore for QProcess in Windows
 - pkfs_svm -> pkfssvm
	removed underscore for QProcess in Windows
 - pkfs_nn -> pkfsann
	removed underscore for QProcess in Windows
 - pkopt_svm -> pkoptsvm
	removed underscore for QProcess in Windows
 - pkmosaic -> pkcomposite
	name was confusing as also compositing is supported (unlike gdal_merge.py and gdalwarp)
	resample option similar to pkcrop
	option cb|cband (composite band) instead of rb|rband (ruleband)
 - version control for libraries
	thanks to suggestion of Francesco Paolo Lovergine
 - subdirectory pktools for include headers
	thanks to suggestion of Francesco Paolo Lovergine
 - pklas2img
	support for compressed point cloud (LAZ) files
 - pkextract
	support for median rule and pointOnSurface
	redesign to optimize vector polygon processing
	removed option for masking, introduced srcnodata and bndnodata
	(more testing is needed)
version 2.5.3
 - pklas2img
	libLAS 1.8.0 support (ticket #42951)

Next versions: 
 - todo for API: ImgReaderGdal (ImgWriterGdal) open in update mode (check gdal_edit.py: http://searchcode.com/codesearch/view/18938404)

