Geoblaze Versions Save

Blazing Fast JavaScript Raster Processing Engine

v2.6.1

2 months ago
  • updated dufour-peyton-intersection 28a7d08

https://github.com/GeoTIFF/geoblaze/compare/v2.6.0...v2.6.1

v2.6.0

5 months ago

v2.6.0 (2023-12-17)

:boom: Breaking Changes

  • None

:rocket: New Feature / Improvement

  • Increased speed of calculating a single statistic (e.g., geoblaze.min, geoblaze.max, geoblaze.mean, geoblaze.median, and geoblaze.sum). Depending on the nuances of the data source and request, this can lead to more than 2x speedups. We are now calling calc-stats with the "stats" array param, so that calc-stats only calculates exactly the statistic(s) required and nothing more. Previously, calc-stats was still calculating additional default statistics. The previous way wasn't an issue when calc-stats was initially adopted, but as calc-stats added more statistics, it led to a decrease in performance.
  • Added geoblaze.range, calculating the difference between the min and max value for each band.

:bug: Bug Fix

  • None

:house: Internal

  • Created geoblaze.stat for calculating a single statistic. geoblaze.sum and others were refactored to use this. But geoblaze.stat is not a part of the public API.
  • Created a separate geoblaze.stat function inside of the lite folder and refactored the function calls in the lite folder.
  • Replaced utils.resolve with Quick-Promise
  • Added lite folder to format script

:memo: Documentation

  • No changes

Commits

  • Merge pull request #227 from GeoTIFF/refactor-stats bfd42ae
  • refactored lite 6c35a01
  • increased serve limit for range.test.js 6fb06f6
  • updated median 3102076
  • updated imports into tests ef3e563
  • fixed typo in max test 397d6e4
  • fixed typo in modes 768f75c
  • replaced resolve 09e832c
  • Merge branch 'master' of github.com:GeoTIFF/geoblaze into refactor-stats 177e3c7
  • refactored stats be8f405

https://github.com/GeoTIFF/geoblaze/compare/v2.5.0...v2.6.0

v2.5.0

6 months ago

v2.5.0 (2023-11-29)

:boom: Breaking Changes

  • New point densification feature mentioned below may result in slightly more accurate results (i.e. including a pixel or two when they were previously excluded). In general, most results will stay the same.

:rocket: New Feature / Improvement

  • Point Densification: If you pass in a polygonal geometry in a projection different from the raster, geoblaze will automatically drop 3 additional vertices on each line segment when reprojecting the geometry to the raster projection. This will lead to more accurate reprojection, especially when reprojection leads to a significant amount of warping.

:bug: Bug Fix

  • fixed https://github.com/GeoTIFF/geoblaze/issues/224, which was an issue where geoblaze would sample the same pixels multiple times when a multipolygon geometry crosses the antimeridian and the same pixel intersects multiple polygons.

:house: Internal

  • updated reproject-geojson to 0.5.0 to support point densification
  • added geoaffine
  • added clip-test-clipped.json and fiji_anticross_random_test.tif to data/antimeridian for testing
  • added new test to stats.test.js to test for multipolygons that cross the antimeridian

:memo: Documentation

  • No changes

commits

  • added .package-lock.json to .gitignore 587dd0d
  • Merge pull request #225 from GeoTIFF/issue-224 e666ebf
  • fixed issue 224 0533f85
  • Merge pull request #223 from GeoTIFF/point-densify 182283f
  • added point densification ae305a3

https://github.com/GeoTIFF/geoblaze/compare/v2.4.0...v2.5.0

v2.4.0

7 months ago

v2.4.0 (2023-10-13)

:boom: Breaking Changes

  • for geometries that are non-rectangular polygons or multi-polygons, refactored stats calculation such that no-data values are now included in the total "count" property of the return object. Previously, geoblaze completely ignored no data values. However, this shouldn't impact any of the statistical results like sum and median. If you want to get the total number of valid values in an area, look for the "valid" property value in the stats result object. Note: this builds on the work in v2.3.0, which accidentally only included this no-data reporting for single rectangles

:rocket: New Feature / Improvement

  • see breaking change mentioned above

:bug: Bug Fix

  • see breaking change mentioned above

:house: Internal

  • The version of GADM that we use for geoblaze testing doesn't appear to be hosted by UC Davis anymore, so I am hosting it on the geoblaze S3 bucket, so we don't lose it
  • unzip and use MapSPAM global wheat raster for testing
  • update tests to account for new improved logic around counting no-data values
  • pass along debug_level to intersect-polygon
  • wrote test for issue #212 , proving that it now works and can be closed. There was previously some discrepancy in combined results if you pass in polygons separately or as a multi-polygon

:memo: Documentation

  • No changes

commits

  • Merge pull request #221 from GeoTIFF/issue-212 3f24625
  • updated expected results for stats test bc4589c
  • updated stats 0dfa38e
  • updated intersect-polygon test to account for changes f4dcb12
  • updated gadm download link 5eca869
  • removed unused noDataValue declaration in intersect-polygon 537a6c5
  • report no data values for polygons c9b54e7
  • unzip mapspam wheat geotiff on setup 2b41bad
  • Merge pull request #220 from GeoTIFF/geojson-test-data db09e2f
  • fixed typo in eez test 627a233
  • Merge branch 'master' of github.com:GeoTIFF/geoblaze into geojson-test-data 2e594be
  • added code to use geojson-test-data 30336f8
  • Merge pull request #219 from GeoTIFF/new-test-new-zealand-eez 7689c07
  • added test case for New Zealand Land+EEZ intersecting habitat 6e3bd32
  • Update CHANGELOG.md 7e4ce2d

https://github.com/GeoTIFF/geoblaze/compare/v2.3.0...v2.4.0

v2.3.0

8 months ago

v2.3.0 (2023-09-17)

:boom: Breaking Changes

  • refactored stats calculation such that no data values are now included in the total "count" property of the return object. Previously, geoblaze completely ignored no data values. However, this shouldn't impact any of the statistical results like sum and median. If you want to get the total number of valid values in an area, look for the "valid" property value in the stats result object.
  • improved antimeridian support (described below) could potentially lead to changed results for geometries that cross the antimeridian. The new results should be treated as more accurate.

:rocket: New Feature / Improvement

  • when a multi-polygon is used where the polygons are far apart, geoblaze will now make multiple smaller samples instead of sampling the whole area that contains all the polygons. A practical example is when a multipolygon includes polygons that border each side of the antimeridian, previously GeoBlaze would sample a bounding box across the whole world (from nearly -180 to 180 longitude). This could lead to memory issues and stalling. Now, GeoBlaze samples from each side of the world separately.

:bug: Bug Fix

  • fixed seemingly never-ending stalling when sampling across the antimeridian

:house: Internal

:memo: Documentation

  • No changes

commits

  • Merge pull request #217 from GeoTIFF/antimeridian-2023-08-24 836ad0f
  • added across.dbf and across.shx 6c944cc
  • added data/antimeridian/across.{prj,shp} 8519fa6
  • sample twice when crossing antimeridian 19b1ff7
  • added more truth data 344d4c4
  • added stalling anti-meridian test f7ec999
  • Merge pull request #216 from GeoTIFF/DanielJDufour-patch-1 dd2cbec
  • Update CHANGELOG.md fc9279b

https://github.com/GeoTIFF/geoblaze/compare/v2.2.0...v2.3.0

v2.2.0

9 months ago

v2.2.0 (2023-08-12)

:boom: Breaking Changes

  • none

:rocket: New Feature / Improvement

  • stats now includes product (all pixel values within an area multiplied together) because we upgraded calc-stats to the newest version

:bug: Bug Fix

  • intersect-polygon now accounts for cases where the geometry's extent is totally outside the extent of the geotiff, returning early
  • upgrading snap-bbox, fixing where pixels on the edge of a geotiff where missed

:house: Internal

  • added some tests
  • updated some test values to account for new product value returned by calc-stats
  • added some more test data

:memo: Documentation

  • No changes

commits

  • Merge pull request #215 from GeoTIFF/updates-2023-08-11 c719d44
  • added product to stats tests after updating calc-stats 585c3a7
  • updated cross-fetch, georaster, and mathjs dcd58df
  • updated calc-stats 7529a41
  • increased number of serves in intersect polygon test 28de1d2
  • fixed edge case 385422b
  • updated snap-bbox 49e70e2
  • updated dufour-peyton-intersection 48e9b24
  • Update CHANGELOG.md a9fc282

https://github.com/GeoTIFF/geoblaze/compare/v2.1.0...v2.2.0

v2.1.0

10 months ago

v2.1.0 (2023-07-23)

:boom: Breaking Changes

  • Updated convertCrsBboxToImageBbox to properly exclude pixels that barely touch a polygon (i.e. whose pixel centroid doesn't intersect the aoi geometry). This will mean that stats results for rectangular aois could change. You might also see an error thrown saying no valid pixels, whereas before some intersecting pixels were mistakenly included in the calculation. Changes are only expected for rectangular geometries whether they are defined as bounding boxes or rectangular polygons (geoblaze is smart enough to identify a bbox masquerading as a polygon). Non-rectangular geometries should not be affected by any of these changes.

:rocket: New Feature / Improvement

  • Refactored convertCrsBboxToImageBbox in utils.module.js, so that only pixels whose centroid is within the provided rectangle are used for stats calculations. This is making sure rectangles and bounding boxes are treated the same as other polygons.

:bug: Bug Fix

  • Fixed bug in our Github CI workflow whereby gdal_translate wasn't working, because I had forgotten to add instructions to install it

:house: Internal

  • added roundDown function to utils.module.js (copying it from dufour-peyton-intersection)
  • added more testing
  • committed some new test data files

:memo: Documentation

  • No changes

Commits

  • Merge pull request #214 from GeoTIFF/rect-2023-07-22 44a3987
  • updated test value 542b7fd
  • updated bash script to exit on any error 4444890
  • added gdal to github actions d6f4de4
  • expected EXPECTED_BBOX_STATS 3c15b36
  • updated median test value 028bd52
  • updated median test value a090cec
  • updated test value 6f9c7be
  • added antimeridian test file 26e1a8e
  • debugging ci aa9a26e
  • debugging fetching of geojson 87c0739
  • replace cross-fetch/node-fetch with built-in fetch for intersect-polygon.test.js 83a2da1
  • updated expected test data for a histogram test a201e37
  • removed extra console.dir 33e5622
  • fixed issues whereby calculating stats in a rectangle would pull all pixels that touch the rectangle and not just those whose centroid is inside e6599d3
  • Create CHANGELOG.md afa32b9

https://github.com/GeoTIFF/geoblaze/compare/v2.0.0...v2.1.0

v2.0.0

10 months ago

v2.0.0 (2023-07-10)

:boom: Breaking Changes

  • Pixels whose centroid lies precisely on the intersection of the polygon line segment and the center-line of a pixel row are now snapped out towards the exterior of the polygon. (In other words, we round down from 0.5 not up when calculating the left edge or minimum x value of a strip of intersecting pixels)

:rocket: New Feature / Improvement

  • Rigorous support for topologically "complex" geometries with overlapping holes or polygons. There is a small performance hit for geometries with holes or multiple polygons because of the new deconfliction/merging steps.

:bug: Bug Fix

  • Fixed bug where the bounding box calculation for MultiPolygon geometries was sometimes only using the first polygon.
  • Fixed bug whereby overlapping polygons or overlapping holes were misidentifying overlap as "inside" the polygon
  • Fixed bug where sometimes No Data or NaN values were passed to the statistical calculations

:house: Internal

  • Replaced bespoke code for pulling polygons from a provided geometry with mpoly
  • Replaced bespoke bounding box calculation with bbox-fns
  • Used rasterstats to generate "truth" test data. Results are now very similar to rasterstats, often identical. However, sometimes rasterstats and geoblaze will have results that are a few pixels different (representing less than 1% of pixels) for large complex areas. Further investigation is required.
  • Use write-image internally to visualize intersections, adding a manual visual way to check intersection calculations
  • Use new version of dufour-peyton-intersection

:memo: Documentation

  • No changes

commits

  • removed unecessary resampleMethod in get.module.js e80dc0a
  • Merge pull request #206 from GeoTIFF/update-2023-06-10 df1b8a3
  • force babel conversion of mpoly and geowarp 18ae9de
  • fixed eslint issue 5f3438b
  • improved support for multipolygons and polygons with holes 626041e
  • added expected_data.txt 3ff5cc4
  • updated data/create_expected_truth_data.py dbee4bb
  • removed coupling 93e5d3a
  • removed mergeRanges b9f0240
  • remove categorizeIntersection 242dfb7
  • removed cluster and getBoundingBox references 04c96fa
  • deleted unused clusterLineSegments (it had moved to dufour-peyton-intersection), and deleted one extaneous getBoundingBox test 261a856
  • don't pass no data values to calcstats 049fee0
  • cleaned up a little code in get.module.js fab69e3
  • added code to run python 3bc2480
  • updated ci to use python eb78519
  • added geojson test files 21a87d6
  • added create_expected_truth_data.py e17eb47
  • Merge pull request #205 from GeoTIFF/calc-bbox f9190a6
  • replaced bespoke internal logic of getBoundingBox with bbox-fns/calc.js 9ed5ed1
  • updated deps and add @turf/boolean-clockwise, bbox-fns, @danieljdufour/write-png, and write-image c4fcf15

https://github.com/GeoTIFF/geoblaze/compare/v1.2.1-0...v2.0.0

v1.3.0-0

11 months ago

Big Picture: Improved support for overlapping polygons and overlapping holes, as well as fixing some other edge cases

  • force babel conversion of mpoly and geowarp 18ae9de
  • fixed eslint issue 5f3438b
  • improved support for multipolygons and polygons with holes 626041e
  • added expected_data.txt 3ff5cc4
  • updated data/create_expected_truth_data.py dbee4bb
  • removed coupling 93e5d3a
  • removed mergeRanges b9f0240
  • remove categorizeIntersection 242dfb7
  • removed cluster and getBoundingBox references 04c96fa
  • deleted unused clusterLineSegments (it had moved to dufour-peyton-intersection), and deleted one extaneous getBoundingBox test 261a856
  • don't pass no data values to calcstats 049fee0
  • cleaned up a little code in get.module.js fab69e3
  • added code to run python 3bc2480
  • updated ci to use python eb78519
  • added geojson test files 21a87d6
  • added create_expected_truth_data.py e17eb47
  • replaced bespoke internal logic of getBoundingBox with bbox-fns/calc.js 9ed5ed1
  • updated deps and add @turf/boolean-clockwise, bbox-fns, @danieljdufour/write-png, and write-image c4fcf15

https://github.com/GeoTIFF/geoblaze/compare/v1.2.1-0...v1.3.0-0

v1.2.1-0

1 year ago
  • updated deps 85986ab
  • Merge pull request #201 from GeoTIFF/hole 4a3cf60
  • updated workflow with webpack workaround and added hole.geojson 6ac8085
  • added test workflow bae7dac
  • updated dependencies and improved bbox reprojection 1d69ca1
  • added hole support test cd3f6f4

https://github.com/GeoTIFF/geoblaze/compare/v1.2.0...v1.2.1-0