All notable changes to this project will be documented in this file.
All changes are by Kevin Sahr, unless otherwise noted.
- cell output format in example gdalExample was changed to GeoJSON to avoid potential issues with GDAL KML driver
- incorrect parsing of text input lines in SubOpBasicMulti::inStrToPointLoc
- correctly handles math constants in Windows (thanks to @allixender)
- output whether or not built with GDAL
- suppressed remaining compiler warnings
- template definition errors in DgPhysicalRF
- igeo7 DGGS preset defaults output_cell_label_type to OUTPUT_ADDRESS_TYPE
- added #define to ensure PRIx64 gets defined
- new hierarchical index address types Z7 and Z7_STRING to parameters input_address_type and output_address_type
- new DGGS preset IGEO7 (see new example igeo7WholeEarth)
- added new examples quads, z7CellClip, z7Nums, z7WholeEarth, z7Collection and z7Transform
- changed example z3Transform so that it takes non-GEO input
- yet more bugs binning some points that are very close to certain icosahedron edges into odd aperture 7 resolutions
- bug binning some points that are very close to certain icosahedron edges into odd aperture 7 resolutions
- failure when performing a TRANSFORM operation with input files other than lat/lon
- fixed macro names in Z3RF
- pure aperture 7 hexagon grids (ISEA7H/FULLER7H) are now first class DGGS that support all operations (just like aperture 3 and 4 hexagon DGGS)
- removed altitude component from built-in GeoJSON and KML output files
- dgaplib glue library for dglib application development
- example multipleOrientations to demonstrate/test creating multiple random grid placements
- new version 8 examples binpresV8, binvalsV8, genPtsV8, and transformV8.
- complete re-architecture of DGGRID application to use dgaplib approach
- all operations now use complete cell output infrastructure previously used by GENERATE_GRID.
- added operation GENERATE_GRID_FROM_POINTS
- operations GENERATE_GRID_FROM_POINTS, BIN_POINT_VALS, and BIN_POINT_PRESENCE can use GDAL file input
- see new V8 examples and the manual for information on the new parameters
- command-line -v and -h flags
- several compiler warnings
- cmake switch WITH_EXT_SHAPELIB to build with an external version of the shapelib library; see details in INSTALL.md (thanks to @allixender)
- (all changes below are not yet documented in the manual; but see the new examples listed below)
- added choice OUTPUT_ADDRESS_TYPE to parameter output_cell_label_type
- added new hierarchical index address types ZORDER, ZORDER_STRING, Z3, and Z3_STRING to parameters input_address_type and output_address_type
- operations BIN_POINT_VALS and BIN_POINT_PRESENCE now output addresses using output_address_type
- replaced parameter clip_cell_seqnums with clip_cell_addresses, which uses cell addresses as specified by input_address_type.
- added new examples isea4t, isea4d, z3CellClip, z3Nums, z3WholeEarth, zCollection, zTransform, z3Collection, z3Transform, zCellClip, and zNums
- additional debugging statements to help in tracking down some issues
- removed DestroyFeature from DgOutGdalFile.cpp
- added DGGRID dockerfile image (thanks to @allixender)
- clipping with input polygons now works (again) in diamond and triangle grids
- updated README.md
- handles holes in GDAL input clipping polygons. Added new parameter clip_using_holes and example named holes
- replaced deprecated sprintf with snprintf throughout
- suppressed unused parameter compiler warnings
- updated manual to version 7.7
- refactor DgHexIDGG class hierarchy to avoid potential memory errors
- support for dggridR output
- minor refactor of macro FALLTHROUGH to suppress clang compiler warning
- macro FALLTHROUGH to suppress compiler warning on implict switch case fallthrough
- GDAL collection output, including parameters collection_output_gdal_format and collection_output_file_name, and GDAL_COLLECTION as a choice for output type parameters
- example
gdalCollection
- debugging parameters pause_on_startup and pause_before_exit
- updated manual to version 7.5
- choice COARSE_CELLS to parameter clip_subset_type so grid generation clipping region can be specified using lower resolution cells
- parameters clip_cell_res, clip_cell_seqnums, and clip_cell_densification
- example gridgenCellClip to demonstrate new parameters
- updated manual to version 7.41
- parameters longitude_wrap_mode and unwrap_points to output cells and points without longitude wrapping (to facilitate 2D display)
- example planetRiskGridNoWrap to demonstrate new parameters
- updated manual to version 7.4
- commented-out possible overflow warning messages pending a better implementation
- DGGRIDR compiler flag to allow for dggridR-specific code. Used in the DgBase::report() method.
- suppress compiler warnings (thanks to r-barnes)
- all makeRF methods now return a const pointer
- modify find_package(GDAL) calls to allow user to toggle on/off (thanks to Crghilardi)
- cmake USE_GDAL flag in dggrid CMakeLists.txt
- initialized instance variables in DgResAdd template
- code improvements (thanks to @r-barnes)
- set C STANDARD target property in shapelib CMakeLists.txt (thanks to Crghilardi)
- incorrect nulib include in DgRF.hpp
- fixed shapelib include search for cmake (thanks to @r-barnes)
- all build warnings
- cmake build system (thanks to @r-barnes)
- lots of memory leaks
- doexamplesNoGDAL.sh shell script in examples for users who built DGGRID without GDAL
- added doexamples shell scripts for users who built DGGRID using the legace Makefile build system
- all RF's can now only be created using factory methods name makeRF
- reduced precision on several examples so that the output would match on a wider range of platforms
- type conversion compiler warnings
- minor documentation errors
- removed unnecessary application source code files from the shapelib directory to avoid Xcode linker errors
- removed main function from shputils.c to avoid Xcode linker errors
- ensure C++ version of streampos is used (thanks to r-barnes)
- outdated tags in Doxyfile
- BUILD_WITH_GDAL build flag in MakeIncludes to allow building DGGRID without gdal installed
- USE_NUCELL build flag in MakeIncludes to maintain compatibility with Kevin's nuit fork
- WHERE macro in DgBase.h for quick code location output when debugging
- gridgenDiamond example
- integrated DgRF infrastructure from Kevin's nuit fork
- minor updates to documentation; note neighbors are broken for triangle grids
- renamed MakeIncludes and Makefile to add a ".noCMake" extension so that they won't conflict with a cmake build system
- invalid gridStats in hexagon DGGS when not created using the factory method makeRF(); hex DGGS are now all sub-classes of DgHexIDGGS
- fix inappropriately escaped bracket (thanks to r-barnes)
- remove unused instance variable curLayer_ from DgInGDALFile
- a warning in MakeIncludes about potential gdal building issues
- GDAL output files now correctly repeat the first/last polygon vertex
- added newlines after features in GeoJSON output files and updated examples accordingly
- deleted some extraneous files
- point binning grid generation; currently undocumented
- fixed a bug in dggrid evalCell that caused quad overages to fail
- removed (for now) my failed attempt at optimizing the gnomonic quad bounds code; put back PROJ4
- added DgInterleaveToQ2DIConverter, though not yet wired-up to handle INTERLEAVE input
- refactored quadclip gnomonic bounds check
- added PLANETRISK choice to parameter dggs_type
- added ISEA7H and FULLER7H choices to parameter dggs_type
- added aperture 7 choice to parameter dggs_aperture
- added SEQUENCE choice to parameter dggs_aperture_type
- added new parameter dggs_aperture_sequence
- added GDAL choice to parameter clip_subset_type
- added GDAL choice to parameters cell_output_type and point_output_type
- added new parameter cell_output_gdal_format
- added new parameter point_output_gdal_format
- added cell neighbor output, including parameters neighbor_output_type and neighbor_output_file_name
- added cell children output, including parameters children_output_type and children_output_file_name
- added parameters output_first_seqnum and output_last_seqnum
- restored INTERLEAVE choice to parameter output_address_type with corrected error messages
- released DGGRID under the AGPL license
- gnomonic projection now calculated manually, allowing the removal of the PROJ4 library dependency
- made DgSerialConverter conversion trace code more informative/legible
- updated documentation and examples to reflect all changes
- simplified the point-on-icosahedron-face function
- changed the rotation angle from backing frame to substrate grid backing frame for a DgHexC2Grid2D from 30.0 to -30.0, to correspond to the definition in the PlanetRisk code fork. Note that cell boundary polygons are generated beginning with a different vertex than in previous versions.
- changed examples/sampleOutput to reflect the rotation angle change
- minor changes to examples output formatting
- using shortest distance to face center point to calculate the face a point is on
- all trig functions and sqrt's now use long double versions
- precalculated more constants
- error in coslon limiting in DgEllipsoidRF.cpp (thanks to @billyauhk who found the error in H3)
- added parameter clipper_scale_factor
- added SEQNUMS choice to parameter clip_subset_type (thanks to @r-barnes)
- example seqnums
- shapelib header file directory include in MakeIncludes
- overage in I and J intersection bug
- added bounding box coarse filter before clipper polygon intersection
- this file CHANGELOG.md
- gcc v6 compiler errors (thanks to @r-barnes)
- llvm compile error in DgLocVector.h
- released under an AGPL license
- using clipper for polygon intersection (thanks to @r-barnes)
- cleaned-up examples
- unused hypot.c from proj4lib
- Created private github repo.
- restored v4.3b TRANSFORM_POINTS operation and supporting parameters
- restored v4.3b BIN_POINT_VALS operation and supporting parameters
- restored v4.3b BIN_POINT_PRESENCE operation and supporting parameters
- added GeoJSON output format (thanks to Matt Gregory)
- added parameters kml_name and kml_description
- added new examples
- corrected/suppressed (as applicable) various compiler warnings
- added the metafile editor program MFeditor.jar (available separately from www.discreteglobalgrids.org); MFeditor was written by Michael Paradis and Benjamin Harris, and updated for DGGRID 6.2b by Jeremy Anders and Anthony Serna.
- fixed vertex ordering in ArcInfo Generate file output polygons (bug introduced in version 6.02b)
- fixed bug that caused Superfund cells that straddle quad boundaries to not be appropriately clipped in some situations
- added parameters kml_default_color and kml_default_width
- corrected reversed winding order on output shapefile polygons
- added dglib code usage demo in src/apps/appex
- completed manual appendices A (DGGRID Metafile Parameters) and C (Characteristics of DGGRID Hexagonal DGGs)
- changed output_cell_label_type parameter value "LINEAR_INDEX" to the more descriptive value "GLOBAL_SEQUENCE"
- for naming consistency changed parameter concatenate_randpts_output to randpts_concatenate_output and num_randpts_per_cell to randpts_num_per_cell
- changed DgParamList.h to correctly handle strict c++ two-pass template compiling without -fpermissive
- fixed rare crashes caused by abstract classes with missing virtual destructors
- numerous small changes to allow or improve compilation on a variety of platforms
- increased precision throughout allowing for higher resolution DGGs
- added preset DGGS parameter types
- added mixed aperture 4 and 3 hexagon DGGSs, greatly increasing the number of grid choices
- can generate DGGSs using Fuller's icosahedral projection (projection was written in R by Denis White and then ported to C++ by James Scharmann)
- includes the Superfund_500m hierarchically indexed mixed aperture DGGS
- added ESRI Shapefile format for input and output
- added KML format for output (thanks to Jesse Williamson)
- added ability to break-up large output files by setting the max number of cells to write to a single file
- added operation that outputs DGGS characteristics table
- improved feedback during execution
- improved Makefiles
- builds cleanly on MacOS 10.8.2 using gcc 4.2.1 and on Ubuntu 11.04 with gcc 4.5.2 (thanks to Jesse Williamson)
- first public release
- initial port of Kevin Sahr's tclib to dglib
- Lian Song wrote many of the spherical trigonometry routines and the original implementation of the ISEA projection.