Changelog is no longer maintained. For the latest see Github releases
- rasterStats - Fix bug where default area value is undefined, instead setting default area to 0
This release focuses on raster improvements including a switch to a global equal area projection for raster analysis, and support for calculating raster area
overlap and 10 others in addition to the existing sum
metric. See the full list on the Concepts page.
Precalc now calculates 4 metrics for every datasource and geography combination: count
, valid
, sum
, and area
.
See Migrating page for steps to upgrade.
- Use equal area projection EPSG:6933 for rasters internally, reprojecting on import.
- Add
getRasterBoxSpherical()
function providing bounding box of equal area raster in lat/lon coordinates. - Add
toRasterProjection()
function that reprojects a feature (such as a Sketch or a Geography polygon) to the projection of the raster. - Add high-level
overlapRasterArea()
andoverlapRasterSum()
toolbox functions - Add high-level
rasterMetrics()
toolbox function that usesrasterStats()
function and converts to metric objects. - Add low-level
getArea()
andgetSum()
toolbox functions - Add low-level
rasterStats()
toolbox function with access to 12 raster stats includingarea()
calculation. Returns metrics for all bands with band number in the class ID. - Add low-level
rasterStatsToMetrics()
function for converting from geoblaze stats objects toMetric
objects.
- overlapRaster - replaced with
rasterMetrics
which is multi-band capable - overlapArea - use a Geography with overlapFeatures
- overlapSubarea - use a Geography with overlapFeatures
- flattenSketchAllId - unused
- toShortSketches - unused
- getSketchCollectionChildIds - unused
- Upgrade to geoblaze 2.6 which adds performance improvements in all use cases
- Migrate template-blank-project raster function to use
rasterStats()
- Add Proj.4 wrapper that loads EPSG:6933 projection.
- Update antimeridian section of Concept page
- Update tutorial to instruct user to install geoprocessing with latest flag
explodeMulti
property is now explicitly required for internal datasources in datasources.json. Whentrue
(default), all multipolygons are broken up into polygons, with properties persisted. This reduces the number of polygons to be fetched when you just need the features within the bounding box of your sketch. When set tofalse
, it will usePROMOTE_TO_MULTI
option to make everything a multipolygon. So an imported datasources will never be a mixture of polygons and multipolygons. This is required by the flatgeobuf driver, among others.
- Split vector datasources on import using ogr2ogr wrapdateline option.
- Increase raster import performance - add lzw compression, multithreaded, and increase cache size.
- Drop creation of extra xml metadata file on raster import.
- Add
splitSketchAntimeridian
andsplitFeatureAntimeridian
functions to split polygons crossing 180 degree antimeridian into multipolygon pieces on either side of it. - Add
cleanCoords
function to adjust Polygon coordinates within -180 to 180 degrees prior to splitting. - Refactor code generated by
create:function
to include geography and antimeridian handling, as well as demonstrating fetching data from global vector and raster datasources. - Refactor code generated by
create:client
to include a more robust top-level report withTranslator
, and a lower-level card component. Allow the user to specify the name of the geoprocessing function that gets called. - Add BioOracle and TNC Marine Ecosystems of the World global datasources to default.
- Fix
create:client
andcreate:function
CLI commands. - overlapFeatures - fix bug when multipolygon both params, clarify precalc question on data import
- Reproject multi_class_variability test dataset to proper 4326
- Upgradee to Geoblaze 2.5.0 with better support for antimeridian use cases.
- Upgrade to Georaster 1.6.0
- Refactor template-blank-project and template-ocean-eez functions and clients to support antimeridian.
- Add antimeridian sections to Concepts page
- Rewrite Tutorials for creating a geoprocessing function and report client.
- Lock version of babel-plugin-i18next-extract to 0.9.0, babel cannot find it on
translation:extract
when using 0.9.1 - Don't follow symlink on recursive copy during project init [#242]
- Fix translation of form element with label but no label value
projectClient.getVectorDatasourceUrl()
has been changed togetDatasourceUrl()
, supporting generating a url for all datasource types, whether local testing or production environment.- Refactor dataBucketUrl to take an
options
parameter with newsubPath
for testing. project/geographies.json
file is required with at least one geographyproject/precalc.json
file is required with at least an empty array- Add coordinate truncation to
overlapFeatures
andoverlapRaster
toolbox functions. Defaults to truncating to 6 digits. [#219] - New `precalc`` (boolean) option is explicitly required for all datasources. Must be added to datasources.json
- Add
precalc:data
command outputting toproject/precalc.json
, replacingkeyStats
in datasources.json. - Add
precalc:data:cleanup
command removing stale metrics for datasources and geographies that have been removed. - Default to using new
global-eez-mr-v12
published by the new global-datasources in template-ocean-eez. This is based on the newly release EEZ version 12 by Marine Regions. - Default to using new
world
datasource for basic blank project. - Add support for
Geography
type, includingproject.getGeographyById
,project.getGeographyByGroup
. AddinggeographyId
as a supported MetricDimension. - Add
GeographySwitcher
UI component, with story demonstrating how to use it. - Add
Tooltip
component, used to offer additional information in tables. - Update
getFeatures()
to support fetching from external datasources and usingbboxFilter
andpropertyFilter
defined on the datasource, or passed into the function such as from a geographies bboxFilter or propertyFilter. - Add generic
firstMatching()
function that returns the first item that returns true for filter function from an array. - Refactor
project.getPrecalcMetrics
to supportgeographyId
and to support the scheme of embedding thedatasourceId
into the metricsclassId
using{datasourceId}-total
. This allows the appropriate precalc metric to be identified given the datasourceId. - Add new boilerplate functions for working with geographies in geoprocessing functions and integrate them into the template examples. Includes
getFirstFromParam
andclipToGeography
. - Export
DefaultExtraParams
for use in geoprocessing functions, as a boilerplate for receiving extra params from report clients, includinggeographyIds
,countryIds
,eezNames
. - Update project init template-ocean-eez to allow user to select EEZ based on
global-eez-mr-v12
, generating a default geography and datasource with the correct bounding box and property filter. - Update
data:import
to always generate flatgeobuf format, and offer geojson as an optional additional format. - Update project init template-blank-project to generate default
world
geography, based on the newworld
datasource. - Project init bounding box questions now default to extent of the entire world [-90, -180, -90, -180]. [#216, #217]
- Optimize performance of
flattenBySketchAllClass
function [#218] - Add
geographyId
as the top level sort ID forsortMetrics
andrekeyMetrics
functions. - Add support for
zero
geometries via sketch helpers includingzeroPolygon
,zeroSketch
,zeroSketchArray
,zeroSketchCollection
. See zero geometries. Used primarily byclipToGeography
. - Support handling use case where no features for a data class overlap with the current geography, by adding support for NaN metric values in
toPercentMetric
andClassTable
. See zero geography - Add
jsonValueSchema
for validating generic JSON using Zod at runtime.
- Fix converstion of datasource
propertiesToKeep
to support more than one property - Fix double counting in
overlapFeatures
sum [#228] - Fix SegmentControl to ensure consistent segment width, even if container width is not known at startup.
- Ensure translations of
extraTerms
from JSON config files are loaded properly in translator. fgbFetchAll
now falls back to using world bounding box if one not provided. Previously underlying flatgeobuf library would fail without a bounding box. Console message is output for every fetch making it clear what bounding box was used and the url.
- Upgrade to Typescript 4.9, specifically to get use of
satisfies
operator which allows us to create types with zod from schemas, and ensure that it satisfies another type. Used bypolygonSchema
andmultipolygonSchema
to ensure zod schema will work with@types/geojson
. - Update to geoblaze v2.2.0
- Add additional base language support and add base translations - Dutch, Italian, Bulgarian, French (Belgium), Greek, Hindi, Indonesian, Maori, Polish, Romanian, Tongan, Zulu, Swedish, Swedish (Finland), Estonian, Latvian, Lithuanian, Russian, Danish. [#213]
- Add
keepSmallValues
options toroundDecimal
whichs ensure that rounding doesn't occur when value is smaller than the number of significant digits of the rounding. Defaults to false. [#219] - Export
importRasterDatasource
,importVectorDatasource
, and related helper functions (genVectorConfig
,genRasterConfig
) from library for projects to roll their own import functions. - Change
geographies
togeographyIds
in functions usingExtraParams
- Add antimeridian crossing rasters for testing
- Consolidate top-level
data
directory, pointingstart-data
at the top-level so that bothdata/in
anddata/out
can be accessed depending on the test. - Add
isInternalDatasource
andisExternalDatasource
helpers for type narrowing purposes such as in data precalc and import. - Update
genRasterConfig
andgenVectorConfig
to support either a Datasource or Config as input. - Append
geographyId
to metric output for all example geoprocessing functions in templates. - Add support for simple
metadata
fields indatasource
. Used primarily for third-party external datasources so developer can better reason about which to use and where it comes from.
- Better document port usage (8001, 8080)
- Add
Edges and Limits
page for documenting how edge cases and limits of the framework are handled. - Update
Tutorials
to cover geographies - Update
Concepts
to cover geographiess
getSum
andgetHistogram
are now async functions and take a raster that's been loaded withgeoblaze.parse
orloadCog
- Refactor raster analysis to utilize broad geoblaze improvements in v2.0.0
- Remove
parseGeoraster
and use geoblaze cog support locally - Deprecate
loadCogWindow
and createloadCog
- Add testing around holes, equal area, and multipolygon
- Refactor
overlapRaster
andoverlapRasterClass
to use geoblaze functions - Improve geoblaze support for polygons with holes, multipolygons, overlapping polygons and multipolygons
- Remove
- Support running in devcontainer environment using an improved version of
docker-gp-workspace
(Changelog)- Data:import commands no longer run docker directly because of the expectation that gdal is available in your current environment (devcontainer, codespaces, bare metal, etc)
- Docker
workspace
module andworkspace:shell
command have been removed
- Support passing extra parameters (
ExtraParams
) to gp and pp functions (#204)- Add
ExtraParams
to functions install by templates - ResultsCard can send
extraParams
attribute
- Add
- Fix jest-dynamodb bug with workaround
ae7d429
- Fix report caching server-side cache and will return cached result from initial lambda request, even if it's an async geogrocessing function
- Fix browser report cache, switching from LRU cache library to simple object-based cache
- Add threads.js package for multithreading in functions
- Upgrade aws-cdk-lib to 2.84.0 and aws-sdk to 2.1399.0 to address node12.x EOL
- Update stack snapshots
- Gitignore data/src top-level directory to avoid failing symlink creation
- Add metric packing to DynamoDB payload to support larger payload sizes (400kb limit)
- Add tutorial for development within devcontainer and codespaces environments
- Update tutorial for AWSCLI use
- Update Contributing doc with example of generating example project and dev client
- Update Contributing doc with making and testing modifications instructions
- Document how to clear cache
- Create Postman API workspace for testing function parameters
- Switch
createReportStoryLayout
function tocreateReportDecorator
- Add internationalization (i18n) aka language translation support to core framework and geoprocessing projects, as proposed in GIP-1
- Utilizing this feature in existing projects requires running
translation:install
, then wrapping existing report clients inTranslator
components (see stories), setup POEditor project access. Then use translation CLI commands to extract, publish, translate and then reimport translations. See tutorial for more information.
- Utilizing this feature in existing projects requires running
- Add WatersDiagram SVG component with built-in labels that can be user edited or overrided.
- Add SizeCard and boundaryAreaOverlap to template-ocean-eez, add debug for template packages
- Add planningAreaId to basic.json to distinguish from planningAreaName as the common name for reports, fix extraTerms import for publish. template-ocean-eez uses this, such that when you select an EEZ, it uses the unique ID string from the "UNION" attribute for this value. This is then used by the clipToOceanEEZ preprocessor function in template-ocean-eez
{
datasourceId: "global-clipping-eez-land-union",
operation: "intersection",
options: {
propertyFilter: {
property: "UNION",
values: [project.basic.planningAreaId],
},
},
},
- Update slonik to 2.0 and fix symlink follow endless loop bug in macos
- Stop appending project init metadata to package.json on project creation. Projects created using
template-ocean-eez
will have these that can be safely deleted (e.g.planningUnitId
,planningUnitName
)
- Update SegmentControl component to support RTL languages (tab order reverses)
- Stub out
data/src
anddata/dist
folders on project init - Upgrade webpack cli and improve client error message
- Explicitly make
client
anddatasets
buckets public as now required by AWS. - Drop acl setting from cache control script to make top-level service manifest (index.html) public read. It's no longer needed as bucket is already public.
- Move wiki docs into monorepo, with Github action publishing on merge to main after release
- Switch to CCSA-4.0 license for wiki docs allowing them to be copied, extended and presented.
- Add translation tutorial
- Add advanced storybook tutorial
planningAreaType
is now required in basic.json ofeez
orother
noun
in basic.json has becomeplanningAreaName
nounPossessive
in basic.json has becomeplanningAreaPossessive
. If planningAreaTypes iseez
then should match a validUNION
value in eez_land_union_v3.json- New
genRandomSketches
andgenRandomFeatures
scripts are now installed on init todata/scripts
. New install-data-scripts andreinstall-data-scripts
commands have been put in place for adding these to your project and updating them going forward. If you customize these scripts, it's up to you to merge in your changes after a reinstall of them.
- Add support for new starter templates that user can choose from on init.
- Add support for new
planningAreaType
of eez or other. - Add EEZ selection to project
init
wheneez
planningAreaType used. - Point to tutorials when project init completes
- Add suite of functions for automating preprocessors for standard use cases - genPreprocessor, genClipLoader, dataProviders/getFeatures, polygonPreprocessorSmokeTest. This can be simplified once migrate to ESM and dataproviders module can be merged with gp-core, removing unnecessary indirection.
- Update create:function to use genPreprocessor and offer EEZ selection to user when
eez
planningAreaType used. - Update create:function to use calculateArea geoprocessing function as stub.
- add includeVirtualSketch helper for merging in additional sketch at runtime of geoprocessing function.
- Add genSketch and genSketchCollection scripts installed with base-project on init. Add
install-data-scripts
andreinstall-data-scripts
commands to migrate and upgrade going forward. - Add isPolygonFeatureArray helper
- Add genRandomPolygon and genRandomeSketch scripts in project-space
- Add additional supported metrics (percent) to Typescript types
- Update description of quantitative and categorical rasters in init question
- Address inability to extend ProjectClientBase in user-space because of file mismatch by switching to implementing ProjectClientInterface.
- Add getVectorDatasourceUrl and getExternalVectorDatasourceById methods to ProjectClientBase
- Address clip datasource returning no features on fetch.
- Migrate project init to use
base-project
package, withtemplate-blank-project
ortemplate-ocean-eez
starter templates being merged in by request of user. - Split templates into
starter-template
andadd-on-template
. - Drop nascent
clipDatasources
feature to replace with preprocessor generators. - Add getExampleFeatures and getExampleFeaturesByName testing helpers
- Add prepare script to pre-commit, ensuring TS types are legit
- Update nvmrc to node 16
- Log copying of project config on init
- Add getPaths module that starts to centralize how relative paths get generated across CLI commands.
- Deeply updated wiki docs including tutorials, architecture, etc.
- Add metric group objective helpers - getMetricGroup, getMetricObjectives, getMetricGroupObjectiveIds
- HorizontalStackedBar: increase default title width and allow override
- sortMetrics - add support for sorting by displayOrder property
- SketchAttributesCard and getUserAttribute: add boolean attribute support
- getUserAttribute: add support for collections
- add workspace:shell command matching volume mount of cli use
- Hard error if optional raster metadata file not created as part of transform
- Export VerticalSpacer component
- Use new gp-workspace built on Ubuntu
- Migrate GDAL commands during import and publish to use docker exec.
- Add husky pre-commit hook to run full local tests which include e2e as part of commit
- Remove scripts/e2e tests from CI (gdal calls) since now run in docker container. Limit to locally run tests only for now.
- Add markdown linter
- Remove extensions no longer used
- Update gp landing readme
- Update default README.md and link to tutorials
- Upgrade AWS Cloud Development Kit (CDK) and SDK to version 2. If you haven't deployed a stack in your AWS Region, on your next deploy you will be asked to first run a
cdk bootstrap
command to upgrade. If your stack fails to deploy properly you may need to destroy and recreate it.
- Add first-class support for project configuration (basic.json, datasources.json, metrics.json, objectives.json) with a new
ProjectClient
class for accessing everything in a central place. - Add new commands for importing, reimporting, and publishing both vector and raster datasources with integrated precalculation (
import:data
,reimport:data
,publish:data
) - Add schema validation for many types using
zod
, allowing JSON config files that are often manually edited to be validated. - Support deploying a barebones project with no assets, solving chicken/egg problem
- Add stack destroy CLI command
- Unsilence logging for webservers that run during CLI commands and tests for better comprehension/easier debugging
- Add ToolbarCard component
- Enhance LayerToggle component UX
- Refactor DataDownload component
- Extend ResultsCard to support a custom card layout
- Increase default bar chart height from 10px to 12px
- Export valueFormatter for project use
- Add minimum node (>= 16) and npm (>= 8.5) requirements
- Migrate lambdas to node 16
- Publish API docs (https://seasketch.github.io/geoprocessing/api/)
- Publish UI component library (https://seasketch.github.io/geoprocessing/storybook/?path=/story/components-card-card--simple)
- Add workaround to run storybook in a vscode devcontainer
- Change table row sum check error to warning within a certain range, to not block report renders.
- Improve COG and Flatgeobuf logging for easier debugging of sources
- Change some of the lambda environment variable names for clarity (e.g. SUBSCRIPTIONS_TABLE)
- Add zx dependency for easier execution of shell commands (https://github.com/google/zx)
- Add
local
variant of tests that includes e2e - Unsilence web servers used in CLI commands and testing for easier use
- Refactor Class Table making column configuration flexible and supporting multiple column types (including bar chart).
- Drop support for Node 12.x. AWS CloudFormation/Lambda currently uses 14.x. CI now tests only 14.x and 16.x
-
Upgrade to Geoblaze 1.3.2
-
Upgrade to Webpack 4.46. Migrate start-client dev server script to use webpack serve CLI command.
-
Uprade to Storybook 6.4.22. Refactor storybook config/loader. Cold start time is greatly improved. Uses babel-loader instead of ts-loader. Could now be ready for webpack 5 and React upgrade.
-
Add support for regulation-based classification scheme (RBCS) - types, helpers, UI components, and relating to objectives and metrics.
-
Add initial support for MultiPolygon sketches - types, testing, helpers, fixtures.
-
Add MultiPolygon support to overlapFeatures and overlapRasterClass toolbox functions
-
Add HorizontalStackedBar chart component
-
Add ChartLegend chart component providing standalone legend separate from chart
-
Add ReportChartFigure component for spacing a chart within a Card
-
Add VerticalSpacer UI component as alternative to ye old break tag
-
DataDownload - add caller-provided titleElement prop
-
Export SimpleButton
-
Export CardDecorator
-
Add valueFormatter function - providing shortcut for formatting numbers for human consumption (percentage, commas, fractional digits, custom). Can be exposed by Table components giving caller control over column formatting.
-
Add input sanity check to all type guard helpers (with any parameter), ensuring input is truthy
-
toPercentMetric: support assigning new metric name
-
fgbFetchAll - make support for undefined bbox explicit
-
Add getSketchFeatures helper
-
Add getKeys helper
-
Add support for Objectives and tying them to Metrics
- Lock CI npm version to [email protected] for now due to error with lockfile in newer version.
- Add check that report client exists in bundle before trying to access in App.tsx
- Add numeric-separator plugin for proper babel-loader handling of underscore
- Fix DataDownload dropdown stuck open on startup bug
- overlapRaster - handle case of no overlapping pixels found, fallback to identify on nearest cell
- Add overlapGroupMetrics unit tests
- Add overlapRasterClass unit tests
- Consolidate iframe service types and constants
- Refactor some of helpers - break out geo and native
- Refactor some of types - break datasource out of metric
- Refactor overlap gp toolbox - overlapArea, overlapFeatures, overlapRaster, overlapRasterClass, overlapGroupMetrics, booleanOverlap. Removes overlap for SketchCollection metrics. Remove old functions - areaByClass, calcAreaByClass, calcAreaByClassRaster, intersect, difference
- Add core Metrics support including aggregation - types, helpers, components
- Add DataClass and DataGroup types for representing datasources
- Add Report and ReportResult types for standardizing project level config and combining data and metrics
- Add iucn module with core, helpers, components
- Add overrides to percentLower helper
- SketchAttributesCard: allow user-provided mapping of attribute names to readable for display
- Add Circle and Pill components
- Add LayerToggle component
- Add InfoStatus and ObjectiveStatus components
- getUserAttribute/getJsonUserAttribue - allow input of either sketch or sketchProperties
- Add getJsonUserAttribute helper
- Allow raster-defined and user-defined nodata and projection for cog dataset
- Speed up clipping operations utilizing single sweep support
- Add ReportError error boundary around ResultsCard body
- Add fetchAll flatgeobuf method avoiding streaming generator (slower)
- Add fgb prefix to exported flatgeobuf methods
- Add COG library tests
- Improve base ReportsCard style
- Split client library into client-core and client-ui
- Export ReportContext to client library
- Export base types to client library
- Export sketch helpers to client library
- Add storybook build speedup
- Add percentGoalWithEdgeHelper
- Add beta canary release script to go with alpha, useful if alphas deployed from feature branch and commit number collision
- Consolidate fixtures and export for gp project use
- Fix DataDownload component initial render
- Add babel-class-property plugin to fix build error
- Fix toSketchArray return type
- gpClipOcean - add check for no land feature to clip
- Refactor cog module, improve window calculation for fetch, allow caller override for extra fetch
- Fix various React warnings with improper use of p tags
- Clean up socket handlers, thou shalt not ts-ignore!
- Lock flatgeobuf to version with commonjs
- Add invalid sketch fixture for testing error conditions
- Consolidate util modules into helpers and export all helpers
- Move top-level files into new aws, datasources, storybook, assets folders
- Migrate storybook stories for latest version
- Migrate areaByClass to fgbDeserialize
- Add new test cmnd and debug launcher with runtime prompt of user for test to run (regex)
- Consolidate on start-storybook name for consistency
- Refactor ReportDecorator and remove ReportCardDecorator
- Add support for FlatGeoBuf datasets (flatgeobuf.ts)
- Add support for Cloud Optimized Geotiff raster (cog.ts)
- Add types for georaster and geoblaze (PRs open in upstream repos)
- Add
areaByClass
metric helpers for calculating area for categorized data - Add
KeySection
andSegmentControl
components. - Add react ErrorBoundary to ResultsCard to limit blast radius of uncaught errors.
- Add
capitalize
helper method for strings - Add
groupBy
andkeyBy
helper methods, similar to lodash - Add generics support to PreprocessingHandler allowing implementer to specify more specific Geometry types
- Expand generics support for GeoprocessingHandler and PreprocessingHandler to accept Feature in addition to Sketch. Allows implementer to create gp functions for simpler Features instead of sketches.
- Add
*All
variants of methods for getting test sketches, that also includes sketch collections. (e.g. there is both getExamplePolygonSketchAll and getExamplePolygonSketch) - Add helper functions
toFeatureArray
,toSketchArray
,toFeatureArray
,toFeaturePolygonArray
to normalize function input that accepts either single features or a collection. - Add test helper functions
genSampleSketch
,genSampleSketchCollection
, andgenSampleSketchContext
- Add
roundDecimal
,roundLower
, andpercentLower
number formatting methods - Add
dataset
bucket to stack for quickly publishing simple datasets used in functions e.g. raster and flatgeobuf - Make webpack dev server required dependency so user project can access too
- Add ts-node as direct dep for running user scripts
- Add logger module to replace direct use of console
- Fix ResultsCard handling of no data returned by function.
- Stub 'fs' in webpack and storybook so that browser users of modules that use the filesystem module somewhere don't error. Even if the code being imported doesn't have a code path that uses fs it will still occur.
- drop esModule from file-loader to match storybook default behavior
- Add sketch collections to unit tests, so not just single sketches
- Split out types.ts types into directory
- Add multiple versions of node to CI test strategy
- Add short section on limitations of the framework and accuracy of geoprocessing algorithms.
- Add robust isSketch and friends providing type guard/narrowing ability
- Add robust helpers for fetching examples by sketch type and/or geometry type, utilizes the type guard functions to narrow type.
- Migrate to turf base geojson types and re-export from GP lib for userspace
- Add a few simple common unit conversion helpers like
squareMeterToMile
andsquareMeterToKilometer
- Add booleanOverlap helper
- Add first toolbox function called
overlap
- Add unpackSketches helper to resolve ambiguous functions that accept Sketch or SketchCollection
- Add Generics support to Sketch and SketchCollection to allow user to constrain what types of Feature geometries the Sketch will contain.
- Storybook broke, downgrade ts-loader to last known to work with webpack 4
- Fix top-level
p
tag warning forResultCard
component - Update storybook story separator to properly generate TOC
- Add missing turf/bbox-clip used in clipToBounds template
- temp disable docgen due to bug upstream
- Filter out template sketch examples from example-loader (having gp prefix)
- Polyfill TextEncoder and TextDecoder for older versions of Node
- Clean up osm-land pre script
- Remove unneeded memory settings in gp handlers now that there is sane default
- template-ocean-eez - improve error checking
- Remove prep-data.sh stub file leaving to templates and docs
- Migrate to prefixed example filenames for distinguishing templates and user projects
- Add
data
andsrc
to default gitignore. - Improve example sketch generator
- deprecate getExampleSketchesByName and test partialName alternative
- Consolidate example naming to hyphen
- Switch all helpers to named exports (really everything should be)
- Improve point limit messaging when bundling features
- Update required install steps
- Clarify public projects
- Add support for project templates with 4 nascent templates included - gp-area, template-ocean-eez, gp-clip-bbox, gp-raster-stats (#41)
- Add Node 14.x support
- Added
start:client
CLI command. Serves the project Client bundle locally using Webpack dev server, allowing user to load and test the project reports using Message interface, just as SeaSketch platform does.
- Resolve bug bundling gp-clip-bbox when linked geoprocessing library is used
- Resolve bug where geoprocessing library installed by init had fuzzy versioning, require exact version.
- Resolve inability to build gp-ocean-clip template due to webpack module resolution being too narrow.
- Fix missing .gitignore file in user-generated project. Now it installs and ignores from each template are now merged in on install.
- Fix bug that caused download dropdown order issue
- Remove errant top-level monorepo dependencies
- Fix streaming false message in console output when deploying stack
- Refactor CloudFormation stack, extracting GeoprocessingStack, renaming most resource names and Logical IDs. _This will be a destructive change to all deployed stacks when upgrading, previous analysis results will be lost _
- Migrate CloudFormation stack to Node 14x Lambda runtime
- Bump all dependencies to latest (webpack 5 support held back)
- Add createProject() function to programmatically create projects.
- Add CDK stack and template snapshot tests.
- upgrade polygon-clipping with martinez 0.7n support
- Add CI github workflow
- Support full bucket delete on stack delete
- Soup up the
create_example
script to create an example with async geoprocessing function as well as sync. Ensure it is buildable and deployable out of the box. - Remove now unused IntersectHelper module.
- Update docs on how to install templates
- Add README to geoprocessing package for people finding via NPM
- Migrate from CSS modules to styled-components. The CSS files were not being copied into the build so it was an opportunity to just consolidate on using SC
- Remove duplicate Checkbox identifier. Was only caught downstream by Webpack
- Add Toolbar component
- Add DataDownload component with CSV/JSON support. CSV has auto-flattening of arrays/objects using json2csv library. Downloaded files default to including report name, sketch name (if context available) and current ISO timestamp.
- Add DataDownloadToolbar convenience component
- Add data download toolbar to Table component for convenience
- Replace useDropdown with Dropdown component based on popper.js and usePopper hook
- Fix bug with Jest not being able to interpret CSS module imports, they are now stubbed.
- Add new
Table
component - Add new
FilterSelectTable
component, built on newCheckboxGroup
- Add geoprocessing function helpers - isPolygon, martinez, toJson
- Add sketch helpers - filterByBbox, getExampleSketchesByName
- Add explicit jest dependency, was causing test failure with fresh install and latest npm
- Drop errant geoprocessing dependency from root
- Change lerna to use
npm ci
on publish so that prepublish steps don't produce local lockfile changes which stop the subsequent publish
- Add
install
script, avoids user awareness of Lernaclean
scripts - Add
publish:alpha
andpublish:stable
scripts, avoids user awareness of Lerna - Switch geoprocessing build from
prepublishOnly
toprepare
so that it's run on initial install as well - Add
watch
andwatch:script
scripts to geoprocessing to automatically rebuild assets, useful when in active development with a linked report project - Add complementary VSCode 'build' commands for all
build
andwatch
scripts, for those that prefer to use it. - VSCode extensions - add vscode-map-preview recommendation
- VSCode settings - Add geojson schema support for intellisense
- Stop hiding build and node_modules directories in vscode, they are useful enough to keep easy access to.
- Add extensive notes for how to
npm link
a report to a local geoprocessing package, and troubleshoot issues - Document how to do alpha releases
- Document steps for debugging geoprocessing functions, including using toJsonFile, and geojson map preview