diff --git a/404.html b/404.html index 885dcb5aa..46761776f 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Page Not Found | SeaSketch Geoprocessing - + diff --git a/assets/js/339f6315.a02f4aed.js b/assets/js/339f6315.a02f4aed.js new file mode 100644 index 000000000..4ec42a00e --- /dev/null +++ b/assets/js/339f6315.a02f4aed.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7955],{18114:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>d});var n=t(74848),r=t(28453);const s={},i="Third Party Data",o={id:"thirdpartydata/thirdpartydata",title:"Third Party Data",description:"With all datasets, it is important to check if there is an authoritative dataset that should be used. The sources below are diverse and may offer more accuracy, but they are not necessarily authoritative.",source:"@site/docs/thirdpartydata/thirdpartydata.md",sourceDirName:"thirdpartydata",slug:"/thirdpartydata/",permalink:"/geoprocessing/docs/next/thirdpartydata/",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/thirdpartydata/thirdpartydata.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Upgrade Project",permalink:"/geoprocessing/docs/next/tutorials/upgrade"},next:{title:"Cloud Drive Syncing",permalink:"/geoprocessing/docs/next/tutorials/clouddrive"}},l={},d=[{value:"Global datasources",id:"global-datasources",level:2},{value:"Marine Regions",id:"marine-regions",level:2},{value:"OSM Land",id:"osm-land",level:2},{value:"Allen Coral Atlas",id:"allen-coral-atlas",level:2}];function c(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.header,{children:(0,n.jsx)(a.h1,{id:"third-party-data",children:"Third Party Data"})}),"\n",(0,n.jsx)(a.p,{children:"With all datasets, it is important to check if there is an authoritative dataset that should be used. The sources below are diverse and may offer more accuracy, but they are not necessarily authoritative."}),"\n",(0,n.jsx)(a.h2,{id:"global-datasources",children:"Global datasources"}),"\n",(0,n.jsxs)(a.p,{children:["A number of global datasources are published in the ",(0,n.jsx)(a.a,{href:"https://github.com/seasketch/global-datasources",children:"global-datasources"})," project."]}),"\n",(0,n.jsxs)(a.p,{children:["These are already published as cloud-optimied GeoTIFF's and you can use their URL's directly with ",(0,n.jsx)(a.code,{children:"loadFgb"}),"."]}),"\n",(0,n.jsx)(a.h2,{id:"marine-regions",children:"Marine Regions"}),"\n",(0,n.jsxs)(a.p,{children:["The ",(0,n.jsx)(a.a,{href:"https://marineregions.org/downloads.php",children:"Marine Regions"})," website is a good starting point for boundaries relevant to marine planning including EEZ, territorial sea, etc."]}),"\n",(0,n.jsx)(a.p,{children:'It\'s not always the most accurate, but it has global coverage. If the coastline for the EEZ dataset is not accurate enough you can take the "marine and land zones" dataset and then punch out the land holes using the OSM land dataset below.'}),"\n",(0,n.jsx)(a.h2,{id:"osm-land",children:"OSM Land"}),"\n",(0,n.jsxs)(a.p,{children:["The ",(0,n.jsx)(a.a,{href:"https://osmdata.openstreetmap.de/data/land-polygons.html",children:"OSM Land"})," is a regularly updated coastline dataset. This can be a more accurate dataset than Marine Regions, particularly with coverage of very small islands that are near sea level. This dataset is the most likely to match up with map providers like Mapbox."]}),"\n",(0,n.jsx)(a.h2,{id:"allen-coral-atlas",children:"Allen Coral Atlas"}),"\n",(0,n.jsx)(a.p,{children:"Access this data as follows:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Go to ",(0,n.jsx)(a.a,{href:"https://allencoralatlas.org",children:"Allen Coral Atlas"})," and loging or register an account"]}),"\n",(0,n.jsxs)(a.li,{children:["Once logged in, go to Micronesia on the atlas page - ",(0,n.jsx)(a.a,{href:"https://allencoralatlas.org/atlas/#4.51/6.3220/153.7907",children:"https://allencoralatlas.org/atlas/#4.51/6.3220/153.7907"})]}),"\n",(0,n.jsx)(a.li,{children:"Turn on Maritime Boundaries in the layer menu on the right"}),"\n",(0,n.jsx)(a.li,{children:"Click the Micronesia EEZ on the map"}),"\n",(0,n.jsx)(a.li,{children:"Click the small Download button that appears in the map popup (icon of a page with a down arrow)"}),"\n",(0,n.jsx)(a.li,{children:"Agree to the terms and click to Prepare Download"}),"\n",(0,n.jsxs)(a.li,{children:["Extract your downloaded zip file and look for ",(0,n.jsx)(a.code,{children:"Reef-Extent/reefextent.gpkg"})," and ",(0,n.jsx)(a.code,{children:"Benthic-Map/benthic.gpkg"}),", and make the data accessible to your project through one of the data linking methods described above."]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Allen Coral Atlas Download",src:t(74241).A+"",title:"Allen Coral Atlas Download",width:"2379",height:"1177"})})]})}function h(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},74241:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/AllenDownload-2a0e3233793a6271dae7b617e2eaa279.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>i,x:()=>o});var n=t(96540);const r={},s=n.createContext(r);function i(e){const a=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function o(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),n.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/339f6315.f4bd4e42.js b/assets/js/339f6315.f4bd4e42.js deleted file mode 100644 index ea0f04607..000000000 --- a/assets/js/339f6315.f4bd4e42.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7955],{18114:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var n=t(74848),r=t(28453);const s={},o="Third Party Data",i={id:"thirdpartydata/thirdpartydata",title:"Third Party Data",description:"With all datasets, it is important to check if there is an authoritative dataset that should be used. The sources below are diverse and may offer more accuracy, but they are not necessarily authoritative.",source:"@site/docs/thirdpartydata/thirdpartydata.md",sourceDirName:"thirdpartydata",slug:"/thirdpartydata/",permalink:"/geoprocessing/docs/next/thirdpartydata/",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/thirdpartydata/thirdpartydata.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Upgrade Project",permalink:"/geoprocessing/docs/next/tutorials/upgrade"},next:{title:"Cloud Drive Syncing",permalink:"/geoprocessing/docs/next/tutorials/clouddrive"}},l={},d=[{value:"Global datasources",id:"global-datasources",level:2},{value:"Marine Regions",id:"marine-regions",level:2},{value:"OSM Land",id:"osm-land",level:2},{value:"Allen Coral Atlas",id:"allen-coral-atlas",level:2}];function c(e){const a={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",img:"img",li:"li",p:"p",ul:"ul",...(0,r.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.header,{children:(0,n.jsx)(a.h1,{id:"third-party-data",children:"Third Party Data"})}),"\n",(0,n.jsx)(a.p,{children:"With all datasets, it is important to check if there is an authoritative dataset that should be used. The sources below are diverse and may offer more accuracy, but they are not necessarily authoritative."}),"\n",(0,n.jsx)(a.h2,{id:"global-datasources",children:"Global datasources"}),"\n",(0,n.jsxs)(a.p,{children:["A number of global datasources are published in the ",(0,n.jsx)(a.a,{href:"https://github.com/seasketch/global-datasources",children:"global-datasources"})," project."]}),"\n",(0,n.jsxs)(a.p,{children:["These are already published as cloud-optimied GeoTIFF's and flatgeobuf files and you can add them to your ",(0,n.jsx)(a.code,{children:"datasources.json"})," file."]}),"\n",(0,n.jsx)(a.h2,{id:"marine-regions",children:"Marine Regions"}),"\n",(0,n.jsxs)(a.p,{children:["The ",(0,n.jsx)(a.a,{href:"https://marineregions.org/downloads.php",children:"Marine Regions"})," website is a good starting point for boundaries relevant to marine planning including EEZ, territorial sea, etc."]}),"\n",(0,n.jsx)(a.p,{children:'It\'s not always the most accurate, but it has global coverage. If the coastline for the EEZ dataset is not accurate enough you can take the "marine and land zones" dataset and then punch out the land holes using the OSM land dataset below.'}),"\n",(0,n.jsx)(a.h2,{id:"osm-land",children:"OSM Land"}),"\n",(0,n.jsxs)(a.p,{children:["The ",(0,n.jsx)(a.a,{href:"https://osmdata.openstreetmap.de/data/land-polygons.html",children:"OSM Land"})," is a regularly updated coastline dataset. This can be a more accurate dataset than Marine Regions, particularly with coverage of very small islands that are near sea level. This dataset is the most likely to match up with map providers like Mapbox."]}),"\n",(0,n.jsx)(a.h2,{id:"allen-coral-atlas",children:"Allen Coral Atlas"}),"\n",(0,n.jsx)(a.p,{children:"Access this data as follows:"}),"\n",(0,n.jsxs)(a.ul,{children:["\n",(0,n.jsxs)(a.li,{children:["Go to ",(0,n.jsx)(a.a,{href:"https://allencoralatlas.org",children:"Allen Coral Atlas"})," and loging or register an account"]}),"\n",(0,n.jsxs)(a.li,{children:["Once logged in, go to Micronesia on the atlas page - ",(0,n.jsx)(a.a,{href:"https://allencoralatlas.org/atlas/#4.51/6.3220/153.7907",children:"https://allencoralatlas.org/atlas/#4.51/6.3220/153.7907"})]}),"\n",(0,n.jsx)(a.li,{children:"Turn on Maritime Boundaries in the layer menu on the right"}),"\n",(0,n.jsx)(a.li,{children:"Click the Micronesia EEZ on the map"}),"\n",(0,n.jsx)(a.li,{children:"Click the small Download button that appears in the map popup (icon of a page with a down arrow)"}),"\n",(0,n.jsx)(a.li,{children:"Agree to the terms and click to Prepare Download"}),"\n",(0,n.jsxs)(a.li,{children:["Extract your downloaded zip file and look for ",(0,n.jsx)(a.code,{children:"Reef-Extent/reefextent.gpkg"})," and ",(0,n.jsx)(a.code,{children:"Benthic-Map/benthic.gpkg"}),", and make the data accessible to your project through one of the data linking methods described above."]}),"\n"]}),"\n",(0,n.jsx)(a.p,{children:(0,n.jsx)(a.img,{alt:"Allen Coral Atlas Download",src:t(74241).A+"",title:"Allen Coral Atlas Download",width:"2379",height:"1177"})})]})}function h(e={}){const{wrapper:a}={...(0,r.R)(),...e.components};return a?(0,n.jsx)(a,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},74241:(e,a,t)=>{t.d(a,{A:()=>n});const n=t.p+"assets/images/AllenDownload-2a0e3233793a6271dae7b617e2eaa279.jpg"},28453:(e,a,t)=>{t.d(a,{R:()=>o,x:()=>i});var n=t(96540);const r={},s=n.createContext(r);function o(e){const a=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function i(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),n.createElement(s.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6f9fe69a.0d9fe7c2.js b/assets/js/6f9fe69a.98e76395.js similarity index 99% rename from assets/js/6f9fe69a.0d9fe7c2.js rename to assets/js/6f9fe69a.98e76395.js index 78c5288a7..87fb28f02 100644 --- a/assets/js/6f9fe69a.0d9fe7c2.js +++ b/assets/js/6f9fe69a.98e76395.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[52637],{51145:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>c,metadata:()=>r,toc:()=>t});var d=s(74848),i=s(28453);const c={},l="version",r={id:"api/geoprocessing/variables/version",title:"version",description:"Type declaration",source:"@site/docs/api/geoprocessing/variables/version.md",sourceDirName:"api/geoprocessing/variables",slug:"/api/geoprocessing/variables/version",permalink:"/geoprocessing/docs/next/api/geoprocessing/variables/version",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/api/geoprocessing/variables/version.md",tags:[],version:"current",frontMatter:{}},a={},t=[{value:"Type declaration",id:"type-declaration",level:2},{value:"author",id:"author",level:3},{value:"bin",id:"bin",level:3},{value:"bin.geoprocessing",id:"bingeoprocessing",level:3},{value:"bin.run_tests",id:"binrun_tests",level:3},{value:"bugs",id:"bugs",level:3},{value:"bugs.url",id:"bugsurl",level:3},{value:"dependencies",id:"dependencies",level:3},{value:"dependencies.@aws-sdk/client-apigatewaymanagementapi",id:"dependenciesaws-sdkclient-apigatewaymanagementapi",level:3},{value:"dependencies.@aws-sdk/client-cloudformation",id:"dependenciesaws-sdkclient-cloudformation",level:3},{value:"dependencies.@aws-sdk/client-cloudfront",id:"dependenciesaws-sdkclient-cloudfront",level:3},{value:"dependencies.@aws-sdk/client-dynamodb",id:"dependenciesaws-sdkclient-dynamodb",level:3},{value:"dependencies.@aws-sdk/client-lambda",id:"dependenciesaws-sdkclient-lambda",level:3},{value:"dependencies.@aws-sdk/client-s3",id:"dependenciesaws-sdkclient-s3",level:3},{value:"dependencies.@aws-sdk/lib-dynamodb",id:"dependenciesaws-sdklib-dynamodb",level:3},{value:"dependencies.@babel/core",id:"dependenciesbabelcore",level:3},{value:"dependencies.@babel/plugin-transform-class-properties",id:"dependenciesbabelplugin-transform-class-properties",level:3},{value:"dependencies.@babel/plugin-transform-nullish-coalescing-operator",id:"dependenciesbabelplugin-transform-nullish-coalescing-operator",level:3},{value:"dependencies.@babel/plugin-transform-numeric-separator",id:"dependenciesbabelplugin-transform-numeric-separator",level:3},{value:"dependencies.@babel/plugin-transform-optional-chaining",id:"dependenciesbabelplugin-transform-optional-chaining",level:3},{value:"dependencies.@babel/preset-env",id:"dependenciesbabelpreset-env",level:3},{value:"dependencies.@babel/preset-react",id:"dependenciesbabelpreset-react",level:3},{value:"dependencies.@babel/preset-typescript",id:"dependenciesbabelpreset-typescript",level:3},{value:"dependencies.@babel/register",id:"dependenciesbabelregister",level:3},{value:"dependencies.@popperjs/core",id:"dependenciespopperjscore",level:3},{value:"dependencies.@smithy/config-resolver",id:"dependenciessmithyconfig-resolver",level:3},{value:"dependencies.@smithy/node-config-provider",id:"dependenciessmithynode-config-provider",level:3},{value:"dependencies.@storybook/addon-essentials",id:"dependenciesstorybookaddon-essentials",level:3},{value:"dependencies.@storybook/addon-interactions",id:"dependenciesstorybookaddon-interactions",level:3},{value:"dependencies.@storybook/addon-links",id:"dependenciesstorybookaddon-links",level:3},{value:"dependencies.@storybook/blocks",id:"dependenciesstorybookblocks",level:3},{value:"dependencies.@storybook/manager-api",id:"dependenciesstorybookmanager-api",level:3},{value:"dependencies.@storybook/react",id:"dependenciesstorybookreact",level:3},{value:"dependencies.@storybook/react-vite",id:"dependenciesstorybookreact-vite",level:3},{value:"dependencies.@storybook/test",id:"dependenciesstorybooktest",level:3},{value:"dependencies.@storybook/theming",id:"dependenciesstorybooktheming",level:3},{value:"dependencies.@styled-icons/bootstrap",id:"dependenciesstyled-iconsbootstrap",level:3},{value:"dependencies.@testing-library/react",id:"dependenciestesting-libraryreact",level:3},{value:"dependencies.@turf/turf",id:"dependenciesturfturf",level:3},{value:"dependencies.@types/aws-lambda",id:"dependenciestypesaws-lambda",level:3},{value:"dependencies.@types/bytes",id:"dependenciestypesbytes",level:3},{value:"dependencies.@types/cli-progress",id:"dependenciestypescli-progress",level:3},{value:"dependencies.@types/cli-table",id:"dependenciestypescli-table",level:3},{value:"dependencies.@types/flatbush",id:"dependenciestypesflatbush",level:3},{value:"dependencies.@types/fs-extra",id:"dependenciestypesfs-extra",level:3},{value:"dependencies.@types/geobuf",id:"dependenciestypesgeobuf",level:3},{value:"dependencies.@types/geojson",id:"dependenciestypesgeojson",level:3},{value:"dependencies.@types/humanize-duration",id:"dependenciestypeshumanize-duration",level:3},{value:"dependencies.@types/inquirer",id:"dependenciestypesinquirer",level:3},{value:"dependencies.@types/json2csv",id:"dependenciestypesjson2csv",level:3},{value:"dependencies.@types/lodash",id:"dependenciestypeslodash",level:3},{value:"dependencies.@types/mock-require",id:"dependenciestypesmock-require",level:3},{value:"dependencies.@types/node",id:"dependenciestypesnode",level:3},{value:"dependencies.@types/pbf",id:"dependenciestypespbf",level:3},{value:"dependencies.@types/rbush",id:"dependenciestypesrbush",level:3},{value:"dependencies.@types/react",id:"dependenciestypesreact",level:3},{value:"dependencies.@types/react-dom",id:"dependenciestypesreact-dom",level:3},{value:"dependencies.@types/react-table",id:"dependenciestypesreact-table",level:3},{value:"dependencies.@types/uuid",id:"dependenciestypesuuid",level:3},{value:"dependencies.@vitejs/plugin-react",id:"dependenciesvitejsplugin-react",level:3},{value:"dependencies.abortcontroller-polyfill",id:"dependenciesabortcontroller-polyfill",level:3},{value:"dependencies.aws-cdk-lib",id:"dependenciesaws-cdk-lib",level:3},{value:"dependencies.aws-regions",id:"dependenciesaws-regions",level:3},{value:"dependencies.bbox-fns",id:"dependenciesbbox-fns",level:3},{value:"dependencies.bytes",id:"dependenciesbytes",level:3},{value:"dependencies.canonicalize",id:"dependenciescanonicalize",level:3},{value:"dependencies.cd",id:"dependenciescd",level:3},{value:"dependencies.chalk",id:"dependencieschalk",level:3},{value:"dependencies.classnames",id:"dependenciesclassnames",level:3},{value:"dependencies.cli-progress",id:"dependenciescli-progress",level:3},{value:"dependencies.cli-table",id:"dependenciescli-table",level:3},{value:"dependencies.commander",id:"dependenciescommander",level:3},{value:"dependencies.constructs",id:"dependenciesconstructs",level:3},{value:"dependencies.copy-node-modules",id:"dependenciescopy-node-modules",level:3},{value:"dependencies.default-import",id:"dependenciesdefault-import",level:3},{value:"dependencies.encoding",id:"dependenciesencoding",level:3},{value:"dependencies.esbuild",id:"dependenciesesbuild",level:3},{value:"dependencies.esbuild-plugin-inline-image",id:"dependenciesesbuild-plugin-inline-image",level:3},{value:"dependencies.esbuild-plugins-node-modules-polyfill",id:"dependenciesesbuild-plugins-node-modules-polyfill",level:3},{value:"dependencies.fast-deep-equal",id:"dependenciesfast-deep-equal",level:3},{value:"dependencies.finalhandler",id:"dependenciesfinalhandler",level:3},{value:"dependencies.flatbush",id:"dependenciesflatbush",level:3},{value:"dependencies.flatgeobuf",id:"dependenciesflatgeobuf",level:3},{value:"dependencies.fs-extra",id:"dependenciesfs-extra",level:3},{value:"dependencies.fuzzy-tools",id:"dependenciesfuzzy-tools",level:3},{value:"dependencies.geoblaze",id:"dependenciesgeoblaze",level:3},{value:"dependencies.geobuf",id:"dependenciesgeobuf",level:3},{value:"dependencies.geojson",id:"dependenciesgeojson",level:3},{value:"dependencies.geojson-antimeridian-cut",id:"dependenciesgeojson-antimeridian-cut",level:3},{value:"dependencies.georaster",id:"dependenciesgeoraster",level:3},{value:"dependencies.globby",id:"dependenciesglobby",level:3},{value:"dependencies.http-server",id:"dependencieshttp-server",level:3},{value:"dependencies.humanize-duration",id:"dependencieshumanize-duration",level:3},{value:"dependencies.i18next",id:"dependenciesi18next",level:3},{value:"dependencies.inquirer",id:"dependenciesinquirer",level:3},{value:"dependencies.inquirer-autocomplete-prompt",id:"dependenciesinquirer-autocomplete-prompt",level:3},{value:"dependencies.jsdom",id:"dependenciesjsdom",level:3},{value:"dependencies.json2csv",id:"dependenciesjson2csv",level:3},{value:"dependencies.lodash",id:"dependencieslodash",level:3},{value:"dependencies.mnemonist",id:"dependenciesmnemonist",level:3},{value:"dependencies.mock-require",id:"dependenciesmock-require",level:3},{value:"dependencies.node-fetch",id:"dependenciesnode-fetch",level:3},{value:"dependencies.ora",id:"dependenciesora",level:3},{value:"dependencies.pascalcase",id:"dependenciespascalcase",level:3},{value:"dependencies.pbf",id:"dependenciespbf",level:3},{value:"dependencies.polygon-clipping",id:"dependenciespolygon-clipping",level:3},{value:"dependencies.pretty-bytes",id:"dependenciespretty-bytes",level:3},{value:"dependencies.proj4",id:"dependenciesproj4",level:3},{value:"dependencies.promptly",id:"dependenciespromptly",level:3},{value:"dependencies.rbush",id:"dependenciesrbush",level:3},{value:"dependencies.react",id:"dependenciesreact",level:3},{value:"dependencies.react-dom",id:"dependenciesreact-dom",level:3},{value:"dependencies.react-error-boundary",id:"dependenciesreact-error-boundary",level:3},{value:"dependencies.react-i18next",id:"dependenciesreact-i18next",level:3},{value:"dependencies.react-popper",id:"dependenciesreact-popper",level:3},{value:"dependencies.react-table",id:"dependenciesreact-table",level:3},{value:"dependencies.react-test-renderer",id:"dependenciesreact-test-renderer",level:3},{value:"dependencies.read-package-up",id:"dependenciesread-package-up",level:3},{value:"dependencies.reproject-geojson",id:"dependenciesreproject-geojson",level:3},{value:"dependencies.runes2",id:"dependenciesrunes2",level:3},{value:"dependencies.serve-static",id:"dependenciesserve-static",level:3},{value:"dependencies.slonik",id:"dependenciesslonik",level:3},{value:"dependencies.slonik-sql-tag-raw",id:"dependenciesslonik-sql-tag-raw",level:3},{value:"dependencies.slugify",id:"dependenciesslugify",level:3},{value:"dependencies.spark-md5",id:"dependenciesspark-md5",level:3},{value:"dependencies.spdx-license-ids",id:"dependenciesspdx-license-ids",level:3},{value:"dependencies.start-server-and-test",id:"dependenciesstart-server-and-test",level:3},{value:"dependencies.storybook",id:"dependenciesstorybook",level:3},{value:"dependencies.stream-buffers",id:"dependenciesstream-buffers",level:3},{value:"dependencies.string-length",id:"dependenciesstring-length",level:3},{value:"dependencies.styled-components",id:"dependenciesstyled-components",level:3},{value:"dependencies.threads-plugin",id:"dependenciesthreads-plugin",level:3},{value:"dependencies.tsx",id:"dependenciestsx",level:3},{value:"dependencies.type-fest",id:"dependenciestype-fest",level:3},{value:"dependencies.typescript",id:"dependenciestypescript",level:3},{value:"dependencies.union-subdivided-polygons",id:"dependenciesunion-subdivided-polygons",level:3},{value:"dependencies.user-meta",id:"dependenciesuser-meta",level:3},{value:"dependencies.uuid",id:"dependenciesuuid",level:3},{value:"dependencies.vite",id:"dependenciesvite",level:3},{value:"dependencies.vite-plugin-node-polyfills",id:"dependenciesvite-plugin-node-polyfills",level:3},{value:"dependencies.vitest",id:"dependenciesvitest",level:3},{value:"dependencies.vitest-fetch-mock",id:"dependenciesvitest-fetch-mock",level:3},{value:"dependencies.ws",id:"dependenciesws",level:3},{value:"dependencies.zod",id:"dependencieszod",level:3},{value:"dependencies.zod-error",id:"dependencieszod-error",level:3},{value:"dependencies.zx",id:"dependencieszx",level:3},{value:"description",id:"description",level:3},{value:"devDependencies",id:"devdependencies",level:3},{value:"devDependencies.@testing-library/jest-dom",id:"devdependenciestesting-libraryjest-dom",level:3},{value:"devDependencies.@types/finalhandler",id:"devdependenciestypesfinalhandler",level:3},{value:"devDependencies.dynamodb-local",id:"devdependenciesdynamodb-local",level:3},{value:"devDependencies.identity-obj-proxy",id:"devdependenciesidentity-obj-proxy",level:3},{value:"devDependencies.mock-socket",id:"devdependenciesmock-socket",level:3},{value:"devDependencies.typedoc",id:"devdependenciestypedoc",level:3},{value:"exports",id:"exports",level:3},{value:"exports..",id:"exports-1",level:3},{value:"exports...import",id:"exportsimport",level:3},{value:"exports...types",id:"exportstypes",level:3},{value:"exports../client-core",id:"exportsclient-core",level:3},{value:"exports../client-ui",id:"exportsclient-ui",level:3},{value:"exports../dataproviders",id:"exportsdataproviders",level:3},{value:"exports../package.json",id:"exportspackagejson",level:3},{value:"exports../scripts",id:"exportsscripts",level:3},{value:"exports../scripts/testing",id:"exportsscriptstesting",level:3},{value:"exports../storybook",id:"exportsstorybook",level:3},{value:"homepage",id:"homepage",level:3},{value:"keywords",id:"keywords",level:3},{value:"license",id:"license",level:3},{value:"main",id:"main",level:3},{value:"module",id:"module",level:3},{value:"name",id:"name",level:3},{value:"readme",id:"readme",level:3},{value:"repository",id:"repository",level:3},{value:"repository.type",id:"repositorytype",level:3},{value:"repository.url",id:"repositoryurl",level:3},{value:"scripts",id:"scripts",level:3},{value:"scripts._prepare",id:"scripts_prepare",level:3},{value:"scripts.build",id:"scriptsbuild",level:3},{value:"scripts.build",id:"scriptsbuild-1",level:3},{value:"scripts.build",id:"scriptsbuild-2",level:3},{value:"scripts.prepare",id:"scriptsprepare",level:3},{value:"scripts.start",id:"scriptsstart",level:3},{value:"scripts.start",id:"scriptsstart-1",level:3},{value:"scripts.storybook",id:"scriptsstorybook",level:3},{value:"scripts.test",id:"scriptstest",level:3},{value:"scripts.test",id:"scriptstest-1",level:3},{value:"scripts.test:browser",id:"scriptstestbrowser",level:3},{value:"scripts.test",id:"scriptstest-2",level:3},{value:"scripts.test:e2e",id:"scriptsteste2e",level:3},{value:"scripts.test",id:"scriptstest-3",level:3},{value:"scripts.test:node",id:"scriptstestnode",level:3},{value:"scripts.test:scripts",id:"scriptstestscripts",level:3},{value:"type",id:"type",level:3},{value:"types",id:"types",level:3},{value:"version",id:"version-1",level:3}];function p(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",pre:"pre",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"version",children:"version"})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"version: object;\n"})}),"\n",(0,d.jsx)(n.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,d.jsx)(n.h3,{id:"author",children:"author"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'author: string = "Chad Burt";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"bin",children:"bin"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"bin: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"bingeoprocessing",children:"bin.geoprocessing"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geoprocessing: string = "dist/scripts/geoprocessing.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"binrun_tests",children:"bin.run_tests"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'run_tests: string = "dist/scripts/testing/runner.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"bugs",children:"bugs"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"bugs: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"bugsurl",children:"bugs.url"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'url: string = "https://github.com/seasketch/geoprocessing/issues";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencies",children:"dependencies"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"dependencies: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-apigatewaymanagementapi",children:"dependencies.@aws-sdk/client-apigatewaymanagementapi"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-apigatewaymanagementapi: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-cloudformation",children:"dependencies.@aws-sdk/client-cloudformation"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-cloudformation: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-cloudfront",children:"dependencies.@aws-sdk/client-cloudfront"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-cloudfront: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-dynamodb",children:"dependencies.@aws-sdk/client-dynamodb"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-dynamodb: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-lambda",children:"dependencies.@aws-sdk/client-lambda"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-lambda: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-s3",children:"dependencies.@aws-sdk/client-s3"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-s3: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdklib-dynamodb",children:"dependencies.@aws-sdk/lib-dynamodb"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/lib-dynamodb: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelcore",children:"dependencies.@babel/core"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/core: string = "^7.25.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-class-properties",children:"dependencies.@babel/plugin-transform-class-properties"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-class-properties: string = "^7.25.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-nullish-coalescing-operator",children:"dependencies.@babel/plugin-transform-nullish-coalescing-operator"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-nullish-coalescing-operator: string = "7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-numeric-separator",children:"dependencies.@babel/plugin-transform-numeric-separator"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-numeric-separator: string = "^7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-optional-chaining",children:"dependencies.@babel/plugin-transform-optional-chaining"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-optional-chaining: string = "7.24.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelpreset-env",children:"dependencies.@babel/preset-env"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/preset-env: string = "^7.25.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelpreset-react",children:"dependencies.@babel/preset-react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/preset-react: string = "^7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelpreset-typescript",children:"dependencies.@babel/preset-typescript"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/preset-typescript: string = "^7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelregister",children:"dependencies.@babel/register"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/register: string = "^7.24.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespopperjscore",children:"dependencies.@popperjs/core"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@popperjs/core: string = "^2.11.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciessmithyconfig-resolver",children:"dependencies.@smithy/config-resolver"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@smithy/config-resolver: string = "^3.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciessmithynode-config-provider",children:"dependencies.@smithy/node-config-provider"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@smithy/node-config-provider: string = "^3.1.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookaddon-essentials",children:"dependencies.@storybook/addon-essentials"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/addon-essentials: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookaddon-interactions",children:"dependencies.@storybook/addon-interactions"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/addon-interactions: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookaddon-links",children:"dependencies.@storybook/addon-links"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/addon-links: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookblocks",children:"dependencies.@storybook/blocks"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/blocks: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookmanager-api",children:"dependencies.@storybook/manager-api"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/manager-api: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookreact",children:"dependencies.@storybook/react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/react: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookreact-vite",children:"dependencies.@storybook/react-vite"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/react-vite: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybooktest",children:"dependencies.@storybook/test"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/test: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybooktheming",children:"dependencies.@storybook/theming"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/theming: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstyled-iconsbootstrap",children:"dependencies.@styled-icons/bootstrap"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@styled-icons/bootstrap: string = "^10.47.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestesting-libraryreact",children:"dependencies.@testing-library/react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@testing-library/react: string = "^16.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesturfturf",children:"dependencies.@turf/turf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@turf/turf: string = "7.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesaws-lambda",children:"dependencies.@types/aws-lambda"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/aws-lambda: string = "^8.10.145";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesbytes",children:"dependencies.@types/bytes"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/bytes: string = "^3.1.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypescli-progress",children:"dependencies.@types/cli-progress"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/cli-progress: string = "^3.11.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypescli-table",children:"dependencies.@types/cli-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/cli-table: string = "^0.3.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesflatbush",children:"dependencies.@types/flatbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/flatbush: string = "^3.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesfs-extra",children:"dependencies.@types/fs-extra"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/fs-extra: string = "^11.0.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesgeobuf",children:"dependencies.@types/geobuf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/geobuf: string = "^3.0.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesgeojson",children:"dependencies.@types/geojson"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/geojson: string = "^7946.0.14";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypeshumanize-duration",children:"dependencies.@types/humanize-duration"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/humanize-duration: string = "^3.27.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesinquirer",children:"dependencies.@types/inquirer"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/inquirer: string = "9.0.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesjson2csv",children:"dependencies.@types/json2csv"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/json2csv: string = "^5.0.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypeslodash",children:"dependencies.@types/lodash"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/lodash: string = "^4.17.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesmock-require",children:"dependencies.@types/mock-require"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/mock-require: string = "^2.0.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesnode",children:"dependencies.@types/node"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/node: string = "^22.5.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypespbf",children:"dependencies.@types/pbf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/pbf: string = "^3.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesrbush",children:"dependencies.@types/rbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/rbush: string = "^3.0.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesreact",children:"dependencies.@types/react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/react: string = "^18.3.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesreact-dom",children:"dependencies.@types/react-dom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/react-dom: string = "^18.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesreact-table",children:"dependencies.@types/react-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/react-table: string = "^7.7.20";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesuuid",children:"dependencies.@types/uuid"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/uuid: string = "^10.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvitejsplugin-react",children:"dependencies.@vitejs/plugin-react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@vitejs/plugin-react: string = "^4.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesabortcontroller-polyfill",children:"dependencies.abortcontroller-polyfill"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'abortcontroller-polyfill: string = "^1.7.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-cdk-lib",children:"dependencies.aws-cdk-lib"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'aws-cdk-lib: string = "^2.173.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-regions",children:"dependencies.aws-regions"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'aws-regions: string = "2.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbbox-fns",children:"dependencies.bbox-fns"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'bbox-fns: string = "^0.20.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbytes",children:"dependencies.bytes"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'bytes: string = "^3.1.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescanonicalize",children:"dependencies.canonicalize"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'canonicalize: string = "^2.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescd",children:"dependencies.cd"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'cd: string = "^0.3.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieschalk",children:"dependencies.chalk"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'chalk: string = "^5.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesclassnames",children:"dependencies.classnames"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'classnames: string = "^2.5.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescli-progress",children:"dependencies.cli-progress"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'cli-progress: string = "^3.12.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescli-table",children:"dependencies.cli-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'cli-table: string = "^0.3.11";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescommander",children:"dependencies.commander"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'commander: string = "^12.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesconstructs",children:"dependencies.constructs"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'constructs: string = "^10.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescopy-node-modules",children:"dependencies.copy-node-modules"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'copy-node-modules: string = "^1.1.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesdefault-import",children:"dependencies.default-import"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'default-import: string = "^2.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesencoding",children:"dependencies.encoding"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'encoding: string = "^0.1.13";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesesbuild",children:"dependencies.esbuild"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'esbuild: string = "0.23.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesesbuild-plugin-inline-image",children:"dependencies.esbuild-plugin-inline-image"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'esbuild-plugin-inline-image: string = "^0.0.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesesbuild-plugins-node-modules-polyfill",children:"dependencies.esbuild-plugins-node-modules-polyfill"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'esbuild-plugins-node-modules-polyfill: string = "^1.6.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfast-deep-equal",children:"dependencies.fast-deep-equal"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'fast-deep-equal: string = "^3.1.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfinalhandler",children:"dependencies.finalhandler"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'finalhandler: string = "^1.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesflatbush",children:"dependencies.flatbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'flatbush: string = "^3.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesflatgeobuf",children:"dependencies.flatgeobuf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'flatgeobuf: string = "3.36.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfs-extra",children:"dependencies.fs-extra"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'fs-extra: string = "^11.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfuzzy-tools",children:"dependencies.fuzzy-tools"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'fuzzy-tools: string = "^1.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeoblaze",children:"dependencies.geoblaze"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geoblaze: string = "2.8.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeobuf",children:"dependencies.geobuf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geobuf: string = "^3.0.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeojson",children:"dependencies.geojson"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geojson: string = "^0.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeojson-antimeridian-cut",children:"dependencies.geojson-antimeridian-cut"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geojson-antimeridian-cut: string = "^0.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeoraster",children:"dependencies.georaster"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'georaster: string = "^1.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesglobby",children:"dependencies.globby"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'globby: string = "^14.0.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieshttp-server",children:"dependencies.http-server"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'http-server: string = "^14.1.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieshumanize-duration",children:"dependencies.humanize-duration"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'humanize-duration: string = "^3.32.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesi18next",children:"dependencies.i18next"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'i18next: string = "^23.14.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesinquirer",children:"dependencies.inquirer"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'inquirer: string = "9.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesinquirer-autocomplete-prompt",children:"dependencies.inquirer-autocomplete-prompt"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'inquirer-autocomplete-prompt: string = "^3.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesjsdom",children:"dependencies.jsdom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'jsdom: string = "^25.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesjson2csv",children:"dependencies.json2csv"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'json2csv: string = "^5.0.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieslodash",children:"dependencies.lodash"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'lodash: string = "^4.17.21";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesmnemonist",children:"dependencies.mnemonist"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'mnemonist: string = "^0.39.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesmock-require",children:"dependencies.mock-require"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'mock-require: string = "^3.0.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesnode-fetch",children:"dependencies.node-fetch"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'node-fetch: string = "^3.3.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesora",children:"dependencies.ora"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'ora: string = "^8.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespascalcase",children:"dependencies.pascalcase"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'pascalcase: string = "^2.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespbf",children:"dependencies.pbf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'pbf: string = "^3.2.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespolygon-clipping",children:"dependencies.polygon-clipping"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'polygon-clipping: string = "0.15.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespretty-bytes",children:"dependencies.pretty-bytes"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'pretty-bytes: string = "^5.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesproj4",children:"dependencies.proj4"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'proj4: string = "^2.12.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespromptly",children:"dependencies.promptly"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'promptly: string = "^3.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesrbush",children:"dependencies.rbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'rbush: string = "^3.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact",children:"dependencies.react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react: string = "^18.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-dom",children:"dependencies.react-dom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-dom: string = "^18.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-error-boundary",children:"dependencies.react-error-boundary"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-error-boundary: string = "^4.0.13";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-i18next",children:"dependencies.react-i18next"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-i18next: string = "^15.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-popper",children:"dependencies.react-popper"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-popper: string = "^2.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-table",children:"dependencies.react-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-table: string = "^7.8.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-test-renderer",children:"dependencies.react-test-renderer"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-test-renderer: string = "^18.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesread-package-up",children:"dependencies.read-package-up"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'read-package-up: string = "^11.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreproject-geojson",children:"dependencies.reproject-geojson"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'reproject-geojson: string = "^0.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesrunes2",children:"dependencies.runes2"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'runes2: string = "^1.1.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesserve-static",children:"dependencies.serve-static"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'serve-static: string = "^1.15.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesslonik",children:"dependencies.slonik"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'slonik: string = "33.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesslonik-sql-tag-raw",children:"dependencies.slonik-sql-tag-raw"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'slonik-sql-tag-raw: string = "2.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesslugify",children:"dependencies.slugify"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'slugify: string = "^1.6.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesspark-md5",children:"dependencies.spark-md5"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'spark-md5: string = "^3.0.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesspdx-license-ids",children:"dependencies.spdx-license-ids"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'spdx-license-ids: string = "^3.0.20";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstart-server-and-test",children:"dependencies.start-server-and-test"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'start-server-and-test: string = "^2.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybook",children:"dependencies.storybook"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'storybook: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstream-buffers",children:"dependencies.stream-buffers"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'stream-buffers: string = "^3.0.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstring-length",children:"dependencies.string-length"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'string-length: string = "^6.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstyled-components",children:"dependencies.styled-components"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'styled-components: string = "^6.1.13";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesthreads-plugin",children:"dependencies.threads-plugin"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'threads-plugin: string = "^1.4.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestsx",children:"dependencies.tsx"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'tsx: string = "^4.19.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestype-fest",children:"dependencies.type-fest"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'type-fest: string = "^4.26.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypescript",children:"dependencies.typescript"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'typescript: string = "^5.5.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesunion-subdivided-polygons",children:"dependencies.union-subdivided-polygons"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'union-subdivided-polygons: string = "^0.9.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesuser-meta",children:"dependencies.user-meta"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'user-meta: string = "^1.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesuuid",children:"dependencies.uuid"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'uuid: string = "^10.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvite",children:"dependencies.vite"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vite: string = "^5.4.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvite-plugin-node-polyfills",children:"dependencies.vite-plugin-node-polyfills"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vite-plugin-node-polyfills: string = "^0.22.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvitest",children:"dependencies.vitest"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vitest: string = "^2.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvitest-fetch-mock",children:"dependencies.vitest-fetch-mock"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vitest-fetch-mock: string = "^0.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesws",children:"dependencies.ws"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'ws: string = "^7.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieszod",children:"dependencies.zod"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'zod: string = "^3.23.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieszod-error",children:"dependencies.zod-error"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'zod-error: string = "^1.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieszx",children:"dependencies.zx"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'zx: string = "^8.1.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"description",children:"description"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'description: string = "Geoprocessing and reporting framework for SeaSketch 2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependencies",children:"devDependencies"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"devDependencies: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciestesting-libraryjest-dom",children:"devDependencies.@testing-library/jest-dom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@testing-library/jest-dom: string = "^6.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciestypesfinalhandler",children:"devDependencies.@types/finalhandler"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/finalhandler: string = "^1.2.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciesdynamodb-local",children:"devDependencies.dynamodb-local"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'dynamodb-local: string = "^0.0.34";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciesidentity-obj-proxy",children:"devDependencies.identity-obj-proxy"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'identity-obj-proxy: string = "^3.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciesmock-socket",children:"devDependencies.mock-socket"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'mock-socket: string = "^9.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciestypedoc",children:"devDependencies.typedoc"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'typedoc: string = "^0.26.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exports",children:"exports"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"exports: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"exports-1",children:"exports.."}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:": object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"exportsimport",children:"exports...import"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'import: string = "./dist/src/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportstypes",children:"exports...types"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'types: string = "./dist/src/index.d.ts";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsclient-core",children:"exports../client-core"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/client-core: string = "./dist/client-core.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsclient-ui",children:"exports../client-ui"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/client-ui: string = "./dist/client-ui.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsdataproviders",children:"exports../dataproviders"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/dataproviders: string = "./dist/dataproviders.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportspackagejson",children:"exports../package.json"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'json: string = "./package.json";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsscripts",children:"exports../scripts"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/scripts: string = "./dist/scripts/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsscriptstesting",children:"exports../scripts/testing"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/scripts/testing: string = "./dist/scripts/testing/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsstorybook",children:"exports../storybook"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/storybook: string = "./dist/src/storybook/storybook.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"homepage",children:"homepage"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'homepage: string = "https://github.com/seasketch/geoprocessing#readme";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"keywords",children:"keywords"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"keywords: string[];\n"})}),"\n",(0,d.jsx)(n.h3,{id:"license",children:"license"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'license: string = "BSD-3-Clause";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"main",children:"main"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'main: string = "dist/src/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"module",children:"module"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'module: string = "dist/src/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"name",children:"name"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'name: string = "@seasketch/geoprocessing";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"readme",children:"readme"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'readme: string = "https://github.com/seasketch/geoprocessing#readme";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"repository",children:"repository"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"repository: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"repositorytype",children:"repository.type"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'type: string = "git";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"repositoryurl",children:"repository.url"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'url: string = "git+https://github.com/seasketch/geoprocessing.git";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scripts",children:"scripts"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"scripts: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"scripts_prepare",children:"scripts._prepare"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'_prepare: string = "npx tsx scripts/npm/prepare.ts";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scriptsbuild",children:"scripts.build"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'build: string = "tsc";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsbuild-1",children:["scripts.build",":storybook"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'build:storybook: string = "rm -rf ../../../gp-storybook/Next && storybook build -o ../../../gp-storybook/Next";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsbuild-2",children:["scripts.build",":watch"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'build:watch: string = "tsc --watch";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scriptsprepare",children:"scripts.prepare"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'prepare: string = "npm run build && npm run _prepare";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsstart",children:["scripts.start",":data"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'start:data: string = "http-server . -c-1";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsstart-1",children:["scripts.start",":typedoc"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"start:typedoc: string = \"npx typedoc --watch --name 'SeaSketch Geoprocessing' --includeVersion --excludeExternals --readme none\";\n"})}),"\n",(0,d.jsx)(n.h3,{id:"scriptsstorybook",children:"scripts.storybook"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'storybook: string = "storybook dev -p 6006";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scriptstest",children:"scripts.test"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test: string = "npm run test:node && npm run test:browser";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstest-1",children:["scripts.test",":browser"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:browser: string = "vitest run -c vitest.config.browser.js";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstestbrowser",children:["scripts.test:browser",":matching"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:browser:matching: string = "vitest run -c vitest.config.browser.js -t";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstest-2",children:["scripts.test",":e2e"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"test:e2e: string = \"start-server-and-test start:data 8080 'vitest run -c vitest.config.e2e.js'\";\n"})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsteste2e",children:["scripts.test:e2e",":matching"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:e2e:matching: string = "vitest run -c vitest.config.e2e.js -t";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstest-3",children:["scripts.test",":node"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:node: string = "vitest run -c vitest.config.node.js";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstestnode",children:["scripts.test:node",":matching"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:node:matching: string = "vitest run -c vitest.config.node.js -t";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstestscripts",children:["scripts.test:scripts",":update"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:scripts:update: string = "npm run test:scripts -- --updateSnapshot";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"type",children:"type"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'type: string = "module";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"types",children:"types"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'types: string = "dist/src/index.d.ts";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"version-1",children:"version"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'version: string = "7.0.0-beta.12";\n'})})]})}function o(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(p,{...e})}):p(e)}},28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>r});var d=s(96540);const i={},c=d.createContext(i);function l(e){const n=d.useContext(c);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),d.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[52637],{51145:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>o,frontMatter:()=>c,metadata:()=>r,toc:()=>t});var d=s(74848),i=s(28453);const c={},l="version",r={id:"api/geoprocessing/variables/version",title:"version",description:"Type declaration",source:"@site/docs/api/geoprocessing/variables/version.md",sourceDirName:"api/geoprocessing/variables",slug:"/api/geoprocessing/variables/version",permalink:"/geoprocessing/docs/next/api/geoprocessing/variables/version",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/api/geoprocessing/variables/version.md",tags:[],version:"current",frontMatter:{}},a={},t=[{value:"Type declaration",id:"type-declaration",level:2},{value:"author",id:"author",level:3},{value:"bin",id:"bin",level:3},{value:"bin.geoprocessing",id:"bingeoprocessing",level:3},{value:"bin.run_tests",id:"binrun_tests",level:3},{value:"bugs",id:"bugs",level:3},{value:"bugs.url",id:"bugsurl",level:3},{value:"dependencies",id:"dependencies",level:3},{value:"dependencies.@aws-sdk/client-apigatewaymanagementapi",id:"dependenciesaws-sdkclient-apigatewaymanagementapi",level:3},{value:"dependencies.@aws-sdk/client-cloudformation",id:"dependenciesaws-sdkclient-cloudformation",level:3},{value:"dependencies.@aws-sdk/client-cloudfront",id:"dependenciesaws-sdkclient-cloudfront",level:3},{value:"dependencies.@aws-sdk/client-dynamodb",id:"dependenciesaws-sdkclient-dynamodb",level:3},{value:"dependencies.@aws-sdk/client-lambda",id:"dependenciesaws-sdkclient-lambda",level:3},{value:"dependencies.@aws-sdk/client-s3",id:"dependenciesaws-sdkclient-s3",level:3},{value:"dependencies.@aws-sdk/lib-dynamodb",id:"dependenciesaws-sdklib-dynamodb",level:3},{value:"dependencies.@babel/core",id:"dependenciesbabelcore",level:3},{value:"dependencies.@babel/plugin-transform-class-properties",id:"dependenciesbabelplugin-transform-class-properties",level:3},{value:"dependencies.@babel/plugin-transform-nullish-coalescing-operator",id:"dependenciesbabelplugin-transform-nullish-coalescing-operator",level:3},{value:"dependencies.@babel/plugin-transform-numeric-separator",id:"dependenciesbabelplugin-transform-numeric-separator",level:3},{value:"dependencies.@babel/plugin-transform-optional-chaining",id:"dependenciesbabelplugin-transform-optional-chaining",level:3},{value:"dependencies.@babel/preset-env",id:"dependenciesbabelpreset-env",level:3},{value:"dependencies.@babel/preset-react",id:"dependenciesbabelpreset-react",level:3},{value:"dependencies.@babel/preset-typescript",id:"dependenciesbabelpreset-typescript",level:3},{value:"dependencies.@babel/register",id:"dependenciesbabelregister",level:3},{value:"dependencies.@popperjs/core",id:"dependenciespopperjscore",level:3},{value:"dependencies.@smithy/config-resolver",id:"dependenciessmithyconfig-resolver",level:3},{value:"dependencies.@smithy/node-config-provider",id:"dependenciessmithynode-config-provider",level:3},{value:"dependencies.@storybook/addon-essentials",id:"dependenciesstorybookaddon-essentials",level:3},{value:"dependencies.@storybook/addon-interactions",id:"dependenciesstorybookaddon-interactions",level:3},{value:"dependencies.@storybook/addon-links",id:"dependenciesstorybookaddon-links",level:3},{value:"dependencies.@storybook/blocks",id:"dependenciesstorybookblocks",level:3},{value:"dependencies.@storybook/manager-api",id:"dependenciesstorybookmanager-api",level:3},{value:"dependencies.@storybook/react",id:"dependenciesstorybookreact",level:3},{value:"dependencies.@storybook/react-vite",id:"dependenciesstorybookreact-vite",level:3},{value:"dependencies.@storybook/test",id:"dependenciesstorybooktest",level:3},{value:"dependencies.@storybook/theming",id:"dependenciesstorybooktheming",level:3},{value:"dependencies.@styled-icons/bootstrap",id:"dependenciesstyled-iconsbootstrap",level:3},{value:"dependencies.@testing-library/react",id:"dependenciestesting-libraryreact",level:3},{value:"dependencies.@turf/turf",id:"dependenciesturfturf",level:3},{value:"dependencies.@types/aws-lambda",id:"dependenciestypesaws-lambda",level:3},{value:"dependencies.@types/bytes",id:"dependenciestypesbytes",level:3},{value:"dependencies.@types/cli-progress",id:"dependenciestypescli-progress",level:3},{value:"dependencies.@types/cli-table",id:"dependenciestypescli-table",level:3},{value:"dependencies.@types/flatbush",id:"dependenciestypesflatbush",level:3},{value:"dependencies.@types/fs-extra",id:"dependenciestypesfs-extra",level:3},{value:"dependencies.@types/geobuf",id:"dependenciestypesgeobuf",level:3},{value:"dependencies.@types/geojson",id:"dependenciestypesgeojson",level:3},{value:"dependencies.@types/humanize-duration",id:"dependenciestypeshumanize-duration",level:3},{value:"dependencies.@types/inquirer",id:"dependenciestypesinquirer",level:3},{value:"dependencies.@types/json2csv",id:"dependenciestypesjson2csv",level:3},{value:"dependencies.@types/lodash",id:"dependenciestypeslodash",level:3},{value:"dependencies.@types/mock-require",id:"dependenciestypesmock-require",level:3},{value:"dependencies.@types/node",id:"dependenciestypesnode",level:3},{value:"dependencies.@types/pbf",id:"dependenciestypespbf",level:3},{value:"dependencies.@types/rbush",id:"dependenciestypesrbush",level:3},{value:"dependencies.@types/react",id:"dependenciestypesreact",level:3},{value:"dependencies.@types/react-dom",id:"dependenciestypesreact-dom",level:3},{value:"dependencies.@types/react-table",id:"dependenciestypesreact-table",level:3},{value:"dependencies.@types/uuid",id:"dependenciestypesuuid",level:3},{value:"dependencies.@vitejs/plugin-react",id:"dependenciesvitejsplugin-react",level:3},{value:"dependencies.abortcontroller-polyfill",id:"dependenciesabortcontroller-polyfill",level:3},{value:"dependencies.aws-cdk-lib",id:"dependenciesaws-cdk-lib",level:3},{value:"dependencies.aws-regions",id:"dependenciesaws-regions",level:3},{value:"dependencies.bbox-fns",id:"dependenciesbbox-fns",level:3},{value:"dependencies.bytes",id:"dependenciesbytes",level:3},{value:"dependencies.canonicalize",id:"dependenciescanonicalize",level:3},{value:"dependencies.cd",id:"dependenciescd",level:3},{value:"dependencies.chalk",id:"dependencieschalk",level:3},{value:"dependencies.classnames",id:"dependenciesclassnames",level:3},{value:"dependencies.cli-progress",id:"dependenciescli-progress",level:3},{value:"dependencies.cli-table",id:"dependenciescli-table",level:3},{value:"dependencies.commander",id:"dependenciescommander",level:3},{value:"dependencies.constructs",id:"dependenciesconstructs",level:3},{value:"dependencies.copy-node-modules",id:"dependenciescopy-node-modules",level:3},{value:"dependencies.default-import",id:"dependenciesdefault-import",level:3},{value:"dependencies.encoding",id:"dependenciesencoding",level:3},{value:"dependencies.esbuild",id:"dependenciesesbuild",level:3},{value:"dependencies.esbuild-plugin-inline-image",id:"dependenciesesbuild-plugin-inline-image",level:3},{value:"dependencies.esbuild-plugins-node-modules-polyfill",id:"dependenciesesbuild-plugins-node-modules-polyfill",level:3},{value:"dependencies.fast-deep-equal",id:"dependenciesfast-deep-equal",level:3},{value:"dependencies.finalhandler",id:"dependenciesfinalhandler",level:3},{value:"dependencies.flatbush",id:"dependenciesflatbush",level:3},{value:"dependencies.flatgeobuf",id:"dependenciesflatgeobuf",level:3},{value:"dependencies.fs-extra",id:"dependenciesfs-extra",level:3},{value:"dependencies.fuzzy-tools",id:"dependenciesfuzzy-tools",level:3},{value:"dependencies.geoblaze",id:"dependenciesgeoblaze",level:3},{value:"dependencies.geobuf",id:"dependenciesgeobuf",level:3},{value:"dependencies.geojson",id:"dependenciesgeojson",level:3},{value:"dependencies.geojson-antimeridian-cut",id:"dependenciesgeojson-antimeridian-cut",level:3},{value:"dependencies.georaster",id:"dependenciesgeoraster",level:3},{value:"dependencies.globby",id:"dependenciesglobby",level:3},{value:"dependencies.http-server",id:"dependencieshttp-server",level:3},{value:"dependencies.humanize-duration",id:"dependencieshumanize-duration",level:3},{value:"dependencies.i18next",id:"dependenciesi18next",level:3},{value:"dependencies.inquirer",id:"dependenciesinquirer",level:3},{value:"dependencies.inquirer-autocomplete-prompt",id:"dependenciesinquirer-autocomplete-prompt",level:3},{value:"dependencies.jsdom",id:"dependenciesjsdom",level:3},{value:"dependencies.json2csv",id:"dependenciesjson2csv",level:3},{value:"dependencies.lodash",id:"dependencieslodash",level:3},{value:"dependencies.mnemonist",id:"dependenciesmnemonist",level:3},{value:"dependencies.mock-require",id:"dependenciesmock-require",level:3},{value:"dependencies.node-fetch",id:"dependenciesnode-fetch",level:3},{value:"dependencies.ora",id:"dependenciesora",level:3},{value:"dependencies.pascalcase",id:"dependenciespascalcase",level:3},{value:"dependencies.pbf",id:"dependenciespbf",level:3},{value:"dependencies.polygon-clipping",id:"dependenciespolygon-clipping",level:3},{value:"dependencies.pretty-bytes",id:"dependenciespretty-bytes",level:3},{value:"dependencies.proj4",id:"dependenciesproj4",level:3},{value:"dependencies.promptly",id:"dependenciespromptly",level:3},{value:"dependencies.rbush",id:"dependenciesrbush",level:3},{value:"dependencies.react",id:"dependenciesreact",level:3},{value:"dependencies.react-dom",id:"dependenciesreact-dom",level:3},{value:"dependencies.react-error-boundary",id:"dependenciesreact-error-boundary",level:3},{value:"dependencies.react-i18next",id:"dependenciesreact-i18next",level:3},{value:"dependencies.react-popper",id:"dependenciesreact-popper",level:3},{value:"dependencies.react-table",id:"dependenciesreact-table",level:3},{value:"dependencies.react-test-renderer",id:"dependenciesreact-test-renderer",level:3},{value:"dependencies.read-package-up",id:"dependenciesread-package-up",level:3},{value:"dependencies.reproject-geojson",id:"dependenciesreproject-geojson",level:3},{value:"dependencies.runes2",id:"dependenciesrunes2",level:3},{value:"dependencies.serve-static",id:"dependenciesserve-static",level:3},{value:"dependencies.slonik",id:"dependenciesslonik",level:3},{value:"dependencies.slonik-sql-tag-raw",id:"dependenciesslonik-sql-tag-raw",level:3},{value:"dependencies.slugify",id:"dependenciesslugify",level:3},{value:"dependencies.spark-md5",id:"dependenciesspark-md5",level:3},{value:"dependencies.spdx-license-ids",id:"dependenciesspdx-license-ids",level:3},{value:"dependencies.start-server-and-test",id:"dependenciesstart-server-and-test",level:3},{value:"dependencies.storybook",id:"dependenciesstorybook",level:3},{value:"dependencies.stream-buffers",id:"dependenciesstream-buffers",level:3},{value:"dependencies.string-length",id:"dependenciesstring-length",level:3},{value:"dependencies.styled-components",id:"dependenciesstyled-components",level:3},{value:"dependencies.threads-plugin",id:"dependenciesthreads-plugin",level:3},{value:"dependencies.tsx",id:"dependenciestsx",level:3},{value:"dependencies.type-fest",id:"dependenciestype-fest",level:3},{value:"dependencies.typescript",id:"dependenciestypescript",level:3},{value:"dependencies.union-subdivided-polygons",id:"dependenciesunion-subdivided-polygons",level:3},{value:"dependencies.user-meta",id:"dependenciesuser-meta",level:3},{value:"dependencies.uuid",id:"dependenciesuuid",level:3},{value:"dependencies.vite",id:"dependenciesvite",level:3},{value:"dependencies.vite-plugin-node-polyfills",id:"dependenciesvite-plugin-node-polyfills",level:3},{value:"dependencies.vitest",id:"dependenciesvitest",level:3},{value:"dependencies.vitest-fetch-mock",id:"dependenciesvitest-fetch-mock",level:3},{value:"dependencies.ws",id:"dependenciesws",level:3},{value:"dependencies.zod",id:"dependencieszod",level:3},{value:"dependencies.zod-error",id:"dependencieszod-error",level:3},{value:"dependencies.zx",id:"dependencieszx",level:3},{value:"description",id:"description",level:3},{value:"devDependencies",id:"devdependencies",level:3},{value:"devDependencies.@testing-library/jest-dom",id:"devdependenciestesting-libraryjest-dom",level:3},{value:"devDependencies.@types/finalhandler",id:"devdependenciestypesfinalhandler",level:3},{value:"devDependencies.dynamodb-local",id:"devdependenciesdynamodb-local",level:3},{value:"devDependencies.identity-obj-proxy",id:"devdependenciesidentity-obj-proxy",level:3},{value:"devDependencies.mock-socket",id:"devdependenciesmock-socket",level:3},{value:"devDependencies.typedoc",id:"devdependenciestypedoc",level:3},{value:"exports",id:"exports",level:3},{value:"exports..",id:"exports-1",level:3},{value:"exports...import",id:"exportsimport",level:3},{value:"exports...types",id:"exportstypes",level:3},{value:"exports../client-core",id:"exportsclient-core",level:3},{value:"exports../client-ui",id:"exportsclient-ui",level:3},{value:"exports../dataproviders",id:"exportsdataproviders",level:3},{value:"exports../package.json",id:"exportspackagejson",level:3},{value:"exports../scripts",id:"exportsscripts",level:3},{value:"exports../scripts/testing",id:"exportsscriptstesting",level:3},{value:"exports../storybook",id:"exportsstorybook",level:3},{value:"homepage",id:"homepage",level:3},{value:"keywords",id:"keywords",level:3},{value:"license",id:"license",level:3},{value:"main",id:"main",level:3},{value:"module",id:"module",level:3},{value:"name",id:"name",level:3},{value:"readme",id:"readme",level:3},{value:"repository",id:"repository",level:3},{value:"repository.type",id:"repositorytype",level:3},{value:"repository.url",id:"repositoryurl",level:3},{value:"scripts",id:"scripts",level:3},{value:"scripts._prepare",id:"scripts_prepare",level:3},{value:"scripts.build",id:"scriptsbuild",level:3},{value:"scripts.build",id:"scriptsbuild-1",level:3},{value:"scripts.build",id:"scriptsbuild-2",level:3},{value:"scripts.prepare",id:"scriptsprepare",level:3},{value:"scripts.start",id:"scriptsstart",level:3},{value:"scripts.start",id:"scriptsstart-1",level:3},{value:"scripts.storybook",id:"scriptsstorybook",level:3},{value:"scripts.test",id:"scriptstest",level:3},{value:"scripts.test",id:"scriptstest-1",level:3},{value:"scripts.test:browser",id:"scriptstestbrowser",level:3},{value:"scripts.test",id:"scriptstest-2",level:3},{value:"scripts.test:e2e",id:"scriptsteste2e",level:3},{value:"scripts.test",id:"scriptstest-3",level:3},{value:"scripts.test:node",id:"scriptstestnode",level:3},{value:"scripts.test:scripts",id:"scriptstestscripts",level:3},{value:"type",id:"type",level:3},{value:"types",id:"types",level:3},{value:"version",id:"version-1",level:3}];function p(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",pre:"pre",...(0,i.R)(),...e.components};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(n.header,{children:(0,d.jsx)(n.h1,{id:"version",children:"version"})}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"version: object;\n"})}),"\n",(0,d.jsx)(n.h2,{id:"type-declaration",children:"Type declaration"}),"\n",(0,d.jsx)(n.h3,{id:"author",children:"author"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'author: string = "Chad Burt";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"bin",children:"bin"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"bin: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"bingeoprocessing",children:"bin.geoprocessing"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geoprocessing: string = "dist/scripts/geoprocessing.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"binrun_tests",children:"bin.run_tests"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'run_tests: string = "dist/scripts/testing/runner.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"bugs",children:"bugs"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"bugs: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"bugsurl",children:"bugs.url"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'url: string = "https://github.com/seasketch/geoprocessing/issues";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencies",children:"dependencies"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"dependencies: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-apigatewaymanagementapi",children:"dependencies.@aws-sdk/client-apigatewaymanagementapi"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-apigatewaymanagementapi: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-cloudformation",children:"dependencies.@aws-sdk/client-cloudformation"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-cloudformation: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-cloudfront",children:"dependencies.@aws-sdk/client-cloudfront"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-cloudfront: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-dynamodb",children:"dependencies.@aws-sdk/client-dynamodb"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-dynamodb: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-lambda",children:"dependencies.@aws-sdk/client-lambda"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-lambda: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdkclient-s3",children:"dependencies.@aws-sdk/client-s3"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/client-s3: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-sdklib-dynamodb",children:"dependencies.@aws-sdk/lib-dynamodb"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@aws-sdk/lib-dynamodb: string = "^3.637.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelcore",children:"dependencies.@babel/core"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/core: string = "^7.25.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-class-properties",children:"dependencies.@babel/plugin-transform-class-properties"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-class-properties: string = "^7.25.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-nullish-coalescing-operator",children:"dependencies.@babel/plugin-transform-nullish-coalescing-operator"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-nullish-coalescing-operator: string = "7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-numeric-separator",children:"dependencies.@babel/plugin-transform-numeric-separator"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-numeric-separator: string = "^7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelplugin-transform-optional-chaining",children:"dependencies.@babel/plugin-transform-optional-chaining"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/plugin-transform-optional-chaining: string = "7.24.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelpreset-env",children:"dependencies.@babel/preset-env"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/preset-env: string = "^7.25.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelpreset-react",children:"dependencies.@babel/preset-react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/preset-react: string = "^7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelpreset-typescript",children:"dependencies.@babel/preset-typescript"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/preset-typescript: string = "^7.24.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbabelregister",children:"dependencies.@babel/register"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@babel/register: string = "^7.24.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespopperjscore",children:"dependencies.@popperjs/core"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@popperjs/core: string = "^2.11.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciessmithyconfig-resolver",children:"dependencies.@smithy/config-resolver"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@smithy/config-resolver: string = "^3.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciessmithynode-config-provider",children:"dependencies.@smithy/node-config-provider"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@smithy/node-config-provider: string = "^3.1.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookaddon-essentials",children:"dependencies.@storybook/addon-essentials"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/addon-essentials: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookaddon-interactions",children:"dependencies.@storybook/addon-interactions"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/addon-interactions: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookaddon-links",children:"dependencies.@storybook/addon-links"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/addon-links: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookblocks",children:"dependencies.@storybook/blocks"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/blocks: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookmanager-api",children:"dependencies.@storybook/manager-api"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/manager-api: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookreact",children:"dependencies.@storybook/react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/react: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybookreact-vite",children:"dependencies.@storybook/react-vite"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/react-vite: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybooktest",children:"dependencies.@storybook/test"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/test: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybooktheming",children:"dependencies.@storybook/theming"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@storybook/theming: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstyled-iconsbootstrap",children:"dependencies.@styled-icons/bootstrap"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@styled-icons/bootstrap: string = "^10.47.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestesting-libraryreact",children:"dependencies.@testing-library/react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@testing-library/react: string = "^16.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesturfturf",children:"dependencies.@turf/turf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@turf/turf: string = "7.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesaws-lambda",children:"dependencies.@types/aws-lambda"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/aws-lambda: string = "^8.10.145";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesbytes",children:"dependencies.@types/bytes"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/bytes: string = "^3.1.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypescli-progress",children:"dependencies.@types/cli-progress"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/cli-progress: string = "^3.11.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypescli-table",children:"dependencies.@types/cli-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/cli-table: string = "^0.3.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesflatbush",children:"dependencies.@types/flatbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/flatbush: string = "^3.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesfs-extra",children:"dependencies.@types/fs-extra"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/fs-extra: string = "^11.0.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesgeobuf",children:"dependencies.@types/geobuf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/geobuf: string = "^3.0.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesgeojson",children:"dependencies.@types/geojson"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/geojson: string = "^7946.0.14";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypeshumanize-duration",children:"dependencies.@types/humanize-duration"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/humanize-duration: string = "^3.27.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesinquirer",children:"dependencies.@types/inquirer"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/inquirer: string = "9.0.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesjson2csv",children:"dependencies.@types/json2csv"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/json2csv: string = "^5.0.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypeslodash",children:"dependencies.@types/lodash"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/lodash: string = "^4.17.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesmock-require",children:"dependencies.@types/mock-require"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/mock-require: string = "^2.0.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesnode",children:"dependencies.@types/node"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/node: string = "^22.5.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypespbf",children:"dependencies.@types/pbf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/pbf: string = "^3.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesrbush",children:"dependencies.@types/rbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/rbush: string = "^3.0.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesreact",children:"dependencies.@types/react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/react: string = "^18.3.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesreact-dom",children:"dependencies.@types/react-dom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/react-dom: string = "^18.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesreact-table",children:"dependencies.@types/react-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/react-table: string = "^7.7.20";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypesuuid",children:"dependencies.@types/uuid"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/uuid: string = "^10.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvitejsplugin-react",children:"dependencies.@vitejs/plugin-react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@vitejs/plugin-react: string = "^4.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesabortcontroller-polyfill",children:"dependencies.abortcontroller-polyfill"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'abortcontroller-polyfill: string = "^1.7.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-cdk-lib",children:"dependencies.aws-cdk-lib"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'aws-cdk-lib: string = "^2.173.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesaws-regions",children:"dependencies.aws-regions"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'aws-regions: string = "2.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbbox-fns",children:"dependencies.bbox-fns"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'bbox-fns: string = "^0.20.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesbytes",children:"dependencies.bytes"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'bytes: string = "^3.1.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescanonicalize",children:"dependencies.canonicalize"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'canonicalize: string = "^2.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescd",children:"dependencies.cd"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'cd: string = "^0.3.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieschalk",children:"dependencies.chalk"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'chalk: string = "^5.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesclassnames",children:"dependencies.classnames"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'classnames: string = "^2.5.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescli-progress",children:"dependencies.cli-progress"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'cli-progress: string = "^3.12.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescli-table",children:"dependencies.cli-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'cli-table: string = "^0.3.11";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescommander",children:"dependencies.commander"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'commander: string = "^12.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesconstructs",children:"dependencies.constructs"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'constructs: string = "^10.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciescopy-node-modules",children:"dependencies.copy-node-modules"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'copy-node-modules: string = "^1.1.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesdefault-import",children:"dependencies.default-import"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'default-import: string = "^2.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesencoding",children:"dependencies.encoding"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'encoding: string = "^0.1.13";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesesbuild",children:"dependencies.esbuild"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'esbuild: string = "0.23.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesesbuild-plugin-inline-image",children:"dependencies.esbuild-plugin-inline-image"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'esbuild-plugin-inline-image: string = "^0.0.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesesbuild-plugins-node-modules-polyfill",children:"dependencies.esbuild-plugins-node-modules-polyfill"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'esbuild-plugins-node-modules-polyfill: string = "^1.6.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfast-deep-equal",children:"dependencies.fast-deep-equal"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'fast-deep-equal: string = "^3.1.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfinalhandler",children:"dependencies.finalhandler"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'finalhandler: string = "^1.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesflatbush",children:"dependencies.flatbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'flatbush: string = "^3.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesflatgeobuf",children:"dependencies.flatgeobuf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'flatgeobuf: string = "3.36.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfs-extra",children:"dependencies.fs-extra"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'fs-extra: string = "^11.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesfuzzy-tools",children:"dependencies.fuzzy-tools"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'fuzzy-tools: string = "^1.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeoblaze",children:"dependencies.geoblaze"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geoblaze: string = "2.8.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeobuf",children:"dependencies.geobuf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geobuf: string = "^3.0.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeojson",children:"dependencies.geojson"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geojson: string = "^0.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeojson-antimeridian-cut",children:"dependencies.geojson-antimeridian-cut"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'geojson-antimeridian-cut: string = "^0.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesgeoraster",children:"dependencies.georaster"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'georaster: string = "^1.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesglobby",children:"dependencies.globby"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'globby: string = "^14.0.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieshttp-server",children:"dependencies.http-server"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'http-server: string = "^14.1.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieshumanize-duration",children:"dependencies.humanize-duration"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'humanize-duration: string = "^3.32.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesi18next",children:"dependencies.i18next"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'i18next: string = "^23.14.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesinquirer",children:"dependencies.inquirer"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'inquirer: string = "9.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesinquirer-autocomplete-prompt",children:"dependencies.inquirer-autocomplete-prompt"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'inquirer-autocomplete-prompt: string = "^3.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesjsdom",children:"dependencies.jsdom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'jsdom: string = "^25.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesjson2csv",children:"dependencies.json2csv"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'json2csv: string = "^5.0.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieslodash",children:"dependencies.lodash"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'lodash: string = "^4.17.21";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesmnemonist",children:"dependencies.mnemonist"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'mnemonist: string = "^0.39.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesmock-require",children:"dependencies.mock-require"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'mock-require: string = "^3.0.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesnode-fetch",children:"dependencies.node-fetch"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'node-fetch: string = "^3.3.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesora",children:"dependencies.ora"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'ora: string = "^8.1.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespascalcase",children:"dependencies.pascalcase"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'pascalcase: string = "^2.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespbf",children:"dependencies.pbf"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'pbf: string = "^3.2.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespolygon-clipping",children:"dependencies.polygon-clipping"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'polygon-clipping: string = "0.15.7";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespretty-bytes",children:"dependencies.pretty-bytes"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'pretty-bytes: string = "^5.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesproj4",children:"dependencies.proj4"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'proj4: string = "^2.12.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciespromptly",children:"dependencies.promptly"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'promptly: string = "^3.2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesrbush",children:"dependencies.rbush"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'rbush: string = "^3.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact",children:"dependencies.react"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react: string = "^18.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-dom",children:"dependencies.react-dom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-dom: string = "^18.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-error-boundary",children:"dependencies.react-error-boundary"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-error-boundary: string = "^4.0.13";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-i18next",children:"dependencies.react-i18next"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-i18next: string = "^15.0.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-popper",children:"dependencies.react-popper"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-popper: string = "^2.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-table",children:"dependencies.react-table"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-table: string = "^7.8.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreact-test-renderer",children:"dependencies.react-test-renderer"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'react-test-renderer: string = "^18.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesread-package-up",children:"dependencies.read-package-up"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'read-package-up: string = "^11.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesreproject-geojson",children:"dependencies.reproject-geojson"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'reproject-geojson: string = "^0.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesrunes2",children:"dependencies.runes2"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'runes2: string = "^1.1.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesserve-static",children:"dependencies.serve-static"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'serve-static: string = "^1.15.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesslonik",children:"dependencies.slonik"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'slonik: string = "33.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesslonik-sql-tag-raw",children:"dependencies.slonik-sql-tag-raw"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'slonik-sql-tag-raw: string = "2.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesslugify",children:"dependencies.slugify"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'slugify: string = "^1.6.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesspark-md5",children:"dependencies.spark-md5"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'spark-md5: string = "^3.0.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesspdx-license-ids",children:"dependencies.spdx-license-ids"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'spdx-license-ids: string = "^3.0.20";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstart-server-and-test",children:"dependencies.start-server-and-test"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'start-server-and-test: string = "^2.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstorybook",children:"dependencies.storybook"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'storybook: string = "^8.2.9";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstream-buffers",children:"dependencies.stream-buffers"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'stream-buffers: string = "^3.0.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstring-length",children:"dependencies.string-length"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'string-length: string = "^6.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesstyled-components",children:"dependencies.styled-components"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'styled-components: string = "^6.1.13";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesthreads-plugin",children:"dependencies.threads-plugin"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'threads-plugin: string = "^1.4.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestsx",children:"dependencies.tsx"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'tsx: string = "^4.19.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestype-fest",children:"dependencies.type-fest"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'type-fest: string = "^4.26.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciestypescript",children:"dependencies.typescript"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'typescript: string = "^5.5.4";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesunion-subdivided-polygons",children:"dependencies.union-subdivided-polygons"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'union-subdivided-polygons: string = "^0.9.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesuser-meta",children:"dependencies.user-meta"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'user-meta: string = "^1.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesuuid",children:"dependencies.uuid"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'uuid: string = "^10.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvite",children:"dependencies.vite"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vite: string = "^5.4.2";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvite-plugin-node-polyfills",children:"dependencies.vite-plugin-node-polyfills"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vite-plugin-node-polyfills: string = "^0.22.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvitest",children:"dependencies.vitest"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vitest: string = "^2.0.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesvitest-fetch-mock",children:"dependencies.vitest-fetch-mock"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'vitest-fetch-mock: string = "^0.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependenciesws",children:"dependencies.ws"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'ws: string = "^7.3.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieszod",children:"dependencies.zod"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'zod: string = "^3.23.8";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieszod-error",children:"dependencies.zod-error"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'zod-error: string = "^1.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"dependencieszx",children:"dependencies.zx"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'zx: string = "^8.1.5";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"description",children:"description"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'description: string = "Geoprocessing and reporting framework for SeaSketch 2.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependencies",children:"devDependencies"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"devDependencies: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciestesting-libraryjest-dom",children:"devDependencies.@testing-library/jest-dom"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@testing-library/jest-dom: string = "^6.5.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciestypesfinalhandler",children:"devDependencies.@types/finalhandler"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'@types/finalhandler: string = "^1.2.3";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciesdynamodb-local",children:"devDependencies.dynamodb-local"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'dynamodb-local: string = "^0.0.34";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciesidentity-obj-proxy",children:"devDependencies.identity-obj-proxy"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'identity-obj-proxy: string = "^3.0.0";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciesmock-socket",children:"devDependencies.mock-socket"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'mock-socket: string = "^9.3.1";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"devdependenciestypedoc",children:"devDependencies.typedoc"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'typedoc: string = "^0.26.6";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exports",children:"exports"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"exports: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"exports-1",children:"exports.."}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:": object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"exportsimport",children:"exports...import"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'import: string = "./dist/src/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportstypes",children:"exports...types"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'types: string = "./dist/src/index.d.ts";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsclient-core",children:"exports../client-core"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/client-core: string = "./dist/client-core.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsclient-ui",children:"exports../client-ui"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/client-ui: string = "./dist/client-ui.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsdataproviders",children:"exports../dataproviders"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/dataproviders: string = "./dist/dataproviders.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportspackagejson",children:"exports../package.json"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'json: string = "./package.json";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsscripts",children:"exports../scripts"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/scripts: string = "./dist/scripts/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsscriptstesting",children:"exports../scripts/testing"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/scripts/testing: string = "./dist/scripts/testing/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"exportsstorybook",children:"exports../storybook"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'/storybook: string = "./dist/src/storybook/storybook.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"homepage",children:"homepage"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'homepage: string = "https://github.com/seasketch/geoprocessing#readme";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"keywords",children:"keywords"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"keywords: string[];\n"})}),"\n",(0,d.jsx)(n.h3,{id:"license",children:"license"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'license: string = "BSD-3-Clause";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"main",children:"main"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'main: string = "dist/src/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"module",children:"module"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'module: string = "dist/src/index.js";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"name",children:"name"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'name: string = "@seasketch/geoprocessing";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"readme",children:"readme"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'readme: string = "https://github.com/seasketch/geoprocessing#readme";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"repository",children:"repository"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"repository: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"repositorytype",children:"repository.type"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'type: string = "git";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"repositoryurl",children:"repository.url"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'url: string = "git+https://github.com/seasketch/geoprocessing.git";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scripts",children:"scripts"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"scripts: object;\n"})}),"\n",(0,d.jsx)(n.h3,{id:"scripts_prepare",children:"scripts._prepare"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'_prepare: string = "npx tsx scripts/npm/prepare.ts";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scriptsbuild",children:"scripts.build"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'build: string = "tsc";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsbuild-1",children:["scripts.build",":storybook"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'build:storybook: string = "rm -rf ../../../gp-storybook/Next && storybook build -o ../../../gp-storybook/Next";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsbuild-2",children:["scripts.build",":watch"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'build:watch: string = "tsc --watch";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scriptsprepare",children:"scripts.prepare"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'prepare: string = "npm run build && npm run _prepare";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsstart",children:["scripts.start",":data"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'start:data: string = "http-server . -c-1";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsstart-1",children:["scripts.start",":typedoc"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"start:typedoc: string = \"npx typedoc --watch --name 'SeaSketch Geoprocessing' --includeVersion --excludeExternals --readme none\";\n"})}),"\n",(0,d.jsx)(n.h3,{id:"scriptsstorybook",children:"scripts.storybook"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'storybook: string = "storybook dev -p 6006";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"scriptstest",children:"scripts.test"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test: string = "npm run test:node && npm run test:browser";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstest-1",children:["scripts.test",":browser"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:browser: string = "vitest run -c vitest.config.browser.js";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstestbrowser",children:["scripts.test:browser",":matching"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:browser:matching: string = "vitest run -c vitest.config.browser.js -t";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstest-2",children:["scripts.test",":e2e"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:"test:e2e: string = \"start-server-and-test start:data 8080 'vitest run -c vitest.config.e2e.js'\";\n"})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptsteste2e",children:["scripts.test:e2e",":matching"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:e2e:matching: string = "vitest run -c vitest.config.e2e.js -t";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstest-3",children:["scripts.test",":node"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:node: string = "vitest run -c vitest.config.node.js";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstestnode",children:["scripts.test:node",":matching"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:node:matching: string = "vitest run -c vitest.config.node.js -t";\n'})}),"\n",(0,d.jsxs)(n.h3,{id:"scriptstestscripts",children:["scripts.test:scripts",":update"]}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'test:scripts:update: string = "npm run test:scripts -- --updateSnapshot";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"type",children:"type"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'type: string = "module";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"types",children:"types"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'types: string = "dist/src/index.d.ts";\n'})}),"\n",(0,d.jsx)(n.h3,{id:"version-1",children:"version"}),"\n",(0,d.jsx)(n.pre,{children:(0,d.jsx)(n.code,{className:"language-ts",children:'version: string = "7.0.0-beta.13";\n'})})]})}function o(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,d.jsx)(n,{...e,children:(0,d.jsx)(p,{...e})}):p(e)}},28453:(e,n,s)=>{s.d(n,{R:()=>l,x:()=>r});var d=s(96540);const i={},c=d.createContext(i);function l(e){const n=d.useContext(c);return d.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:l(e.components),d.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c5879d20.9b9f6d62.js b/assets/js/c5879d20.4d50dd76.js similarity index 99% rename from assets/js/c5879d20.9b9f6d62.js rename to assets/js/c5879d20.4d50dd76.js index e7158fc25..219db5307 100644 --- a/assets/js/c5879d20.9b9f6d62.js +++ b/assets/js/c5879d20.4d50dd76.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[31429],{76254:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var n=r(74848),t=r(28453);const o={},i="Create New Geoprocessing Project",l={id:"tutorials/newproject",title:"Create New Geoprocessing Project",description:"This tutorial walks you through designing and creating your own geoprocessing report. It covers many of the questions and decisions you might face along the way.",source:"@site/docs/tutorials/newproject.md",sourceDirName:"tutorials",slug:"/tutorials/newproject",permalink:"/geoprocessing/docs/next/tutorials/newproject",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/tutorials/newproject.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Create Sample Project",permalink:"/geoprocessing/docs/next/tutorials/sampleproject"},next:{title:"Setup Existing Project",permalink:"/geoprocessing/docs/next/tutorials/existingproject"}},c={},a=[{value:"Where Do I Start?",id:"where-do-i-start",level:2},{value:"Design",id:"design",level:3},{value:"Start Simple",id:"start-simple",level:3},{value:"Create A SeaSketch Project",id:"create-a-seasketch-project",level:2},{value:"Initialize New Geoprocessing Project",id:"initialize-new-geoprocessing-project",level:2},{value:"Create Your First Report",id:"create-your-first-report",level:2},{value:"Build Your Project",id:"build-your-project",level:2},{value:"Deploy Project To AWS",id:"deploy-project-to-aws",level:2},{value:"Publish Datasources",id:"publish-datasources",level:2},{value:"Integrate With SeaSketch",id:"integrate-with-seasketch",level:2},{value:"Build Up Your Tests",id:"build-up-your-tests",level:2},{value:"Additional Guides",id:"additional-guides",level:2},{value:"What Next",id:"what-next",level:2}];function d(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"create-new-geoprocessing-project",children:"Create New Geoprocessing Project"})}),"\n",(0,n.jsx)(s.p,{children:"This tutorial walks you through designing and creating your own geoprocessing report. It covers many of the questions and decisions you might face along the way."}),"\n",(0,n.jsx)(s.p,{children:"This tutorial assumes:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Your ",(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/",children:"system setup"})," is complete"]}),"\n",(0,n.jsxs)(s.li,{children:["You completed the ",(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject",children:"sample project tutorial"})]}),"\n",(0,n.jsx)(s.li,{children:"Your geoprocessing virtual environment is currently running (Devcontainer or WSL)"}),"\n",(0,n.jsx)(s.li,{children:"You have VSCode open in your virtual environment with a terminal pane open"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"where-do-i-start",children:"Where Do I Start?"}),"\n",(0,n.jsx)(s.p,{children:"Creating a geoprocessing project is not linear, it's iterative. You don't need to have all the answers for your project or understand all the features of the framework. Here's one approach:"}),"\n",(0,n.jsx)(s.h3,{id:"design",children:"Design"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Put together a rough design ",(0,n.jsx)(s.a,{href:"https://docs.google.com/document/d/1Qe7pZYmwg7ggRY9ocu3tpdTQkvuIHMr38wLxrjSitpU/edit?usp=sharing",children:"template"}),". This one asks common questions and is a good place to capture decisions."]}),"\n",(0,n.jsxs)(s.li,{children:["Explore the geoprocessing ",(0,n.jsx)(s.a,{href:"/storybook",children:"UI components library"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"Look at other SeaSketch Reports and find ideas that match your needs."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"start-simple",children:"Start Simple"}),"\n",(0,n.jsx)(s.p,{children:"If it's not clear at this point, the geoprocessing framework is not a one-side-fits-all solution, it's a set of building blocks. Which ones you use are up to you."}),"\n",(0,n.jsx)(s.p,{children:"It takes time to figure out how it all works so keep it simple to start:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"single planning boundary or none at all"}),"\n",(0,n.jsx)(s.li,{children:"simple measurable objectives (overlap area, % area overlap, overlap feature count)"}),"\n",(0,n.jsx)(s.li,{children:"smaller datasets"}),"\n",(0,n.jsx)(s.li,{children:"no groupno classification of sketch types (e.g. protection levels)"}),"\n",(0,n.jsx)(s.li,{children:"no need to handle overlapping sketch polygons"}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["A good example of this is ",(0,n.jsx)(s.a,{href:"https://github.com/underbluewaters/oregon-next",children:"Oregon"})," SeaSketch reports."]}),"\n",(0,n.jsx)(s.p,{children:"Then as your planning process gets more complex:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"multiple planning boundaries (offshore/nearshore)"}),"\n",(0,n.jsx)(s.li,{children:"multiple objectives with targets"}),"\n",(0,n.jsx)(s.li,{children:"large datasets with multiple data subclasses."}),"\n",(0,n.jsx)(s.li,{children:"long running analysis with required precalculation"}),"\n",(0,n.jsx)(s.li,{children:"use of a sketch classification system (e.g. protection levels)"}),"\n",(0,n.jsx)(s.li,{children:"need to enforce rules about overlapping sketches"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Your project can benefit from more advanced features:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"Geography"})," records representing project planning boundaries"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"Metric"})," records for representing multi-dimensional analysis results."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"Objective"})," records representing objective targets per sketch class."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"MetricGroup"})," records reresenting relationship of metric results to their data classes, datasource, objective target, etc."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"toolbox"})," for calculating overlay analysis metrics at the collection level in many dimensions - by data class, by protection level, by planning boundary.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"overlapFeatures"}),", ",(0,n.jsx)(s.code,{children:"rasterMetrics"}),", ",(0,n.jsx)(s.code,{children:"overlapFeaturesGroupMetrics"}),", ",(0,n.jsx)(s.code,{children:"overlapRasterGroupMetrics"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["UI components that can work multi-dimensional metrics","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"ClassTable"}),", ",(0,n.jsx)(s.code,{children:"SketchClassTable"}),", ",(0,n.jsx)(s.code,{children:"GeographySwitcher"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"precalc"})," command automating pre-calculation of overlay stats for combinations of Datasources and Geographies."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"worker"})," functions to run spread out geoprocessing work to run in parallel."]}),"\n",(0,n.jsxs)(s.li,{children:["Language ",(0,n.jsx)(s.code,{children:"translation"})," workflow and library of pre-translated UI components."]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Examples of more complex projects:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/california-reports",children:"California"})," - multiple geographies presented in reports (planning boundaries, bioregions), worker functions"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/bermuda-reports-next",children:"Bermuda"})," - IUCN classification system with metrics calculated overall, per protection level, and per sketch. worker functions"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/azores-nearshore-reports",children:"Blue Azores nearshore"})," - user switching between planning geographies."]}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/seasketch/samoa-reports",children:"Samoa Reports"})}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/azores-nearshore-reports",children:"Azores Nearshore Reports"}),"."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"create-a-seasketch-project",children:"Create A SeaSketch Project"}),"\n",(0,n.jsxs)(s.p,{children:["First things first, follow the ",(0,n.jsx)(s.a,{href:"https://docs.seasketch.org/seasketch-documentation/administrators-guide/getting-started",children:"instructions"})," to create a new SeaSketch project. This includes defining the planning bounds and ",(0,n.jsx)(s.a,{href:"https://docs.seasketch.org/seasketch-documentation/administrators-guide/sketch-classes",children:"creating a Sketch class"}),". You will want to create a ",(0,n.jsx)(s.code,{children:"Polygon"})," sketch class with a name that makes sense for you project (e.g. MPA for Marine Protected Area) and then also a ",(0,n.jsx)(s.code,{children:"Collection"})," sketch class to group instances of your polygon sketch class into. Note that sketch classes are where you will integrate your geoprocessing services to view reports, but you will not do it at this time."]}),"\n",(0,n.jsx)(s.h2,{id:"initialize-new-geoprocessing-project",children:"Initialize New Geoprocessing Project"}),"\n",(0,n.jsx)(s.p,{children:"Start with initializing a new project:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-sh",children:"cd /workspaces\nnpx @seasketch/geoprocessing@7.0.0-beta.12 init 7.0.0-beta.12\n"})}),"\n",(0,n.jsx)(s.p,{children:"Tips:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"the answers to all of the init questions can be changed later, so don't worry if you don't know the answer."}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/next/blob/master/LICENSE",children:"SeaSketch"})," uses a BSD-3 license (the default choice). You can choose any including ",(0,n.jsx)(s.code,{children:"UNLICENSED"}),' meaning proprietary or "All rights reserved" .']}),"\n",(0,n.jsxs)(s.li,{children:["The most common AWS region is ",(0,n.jsx)(s.code,{children:"us-west-1"})," or ",(0,n.jsx)(s.code,{children:"us-east-2"}),". ",(0,n.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html",children:"Choose the region"})," closest to your project."]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["Learn more about your projects ",(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/structure",children:"structure"})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#create-git-repo",children:"Create Github repo and push"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/linkData",children:"Link data into workspace"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"create-your-first-report",children:"Create Your First Report"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#reef-report",children:"Low-level vector report"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#benthic-habitat-report",children:"High-level vector report"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#seamount-report",children:"Low-level raster report"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#coral-species-report",children:"High-level raster report"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"build-your-project",children:"Build Your Project"}),"\n",(0,n.jsxs)(s.p,{children:["The application ",(0,n.jsx)(s.code,{children:"build"})," proceess packages it for deployment. Specifically it:"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Checks all the Typescript code to make sure it's valid and types are used properly."}),"\n",(0,n.jsx)(s.li,{children:"Transpiles all Typescript to Javascript"}),"\n",(0,n.jsxs)(s.li,{children:["Bundles UI report clients into the ",(0,n.jsx)(s.code,{children:".build-web"})," directory"]}),"\n",(0,n.jsxs)(s.li,{children:["Bundles geoprocessing and preprocessing functions into the ",(0,n.jsx)(s.code,{children:".build"})," directory."]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"To build your application run the following:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,n.jsxs)(s.p,{children:["If the build step fails, you will need to look at the error message and figure out what you need to do. Did it fail in building the functions or the clients? 99% of the time you should be able to catch these errors sooner. If VSCode finds invalid Typescript code, it will warn you with files marked in ",(0,n.jsx)(s.code,{children:"red"})," in the Explorer panel or with red markes and squiggle text in any of the files."]}),"\n",(0,n.jsx)(s.p,{children:"If you're still not sure try some of the following:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Run your smoke tests, see if they pass"}),"\n",(0,n.jsx)(s.li,{children:"When was the last time your build did succeed? You can be sure the error is caused by a change you made since then either in your project code, by upgrading your geoprocessing library version and not migratin fully, or by changing something on your system."}),"\n",(0,n.jsx)(s.li,{children:"You can stash your current changes or commit them to a branch so they are not lost. Then sequentially check out previous commits of the code until you find one that builds properly. Now you know that the next commit cause the build error."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"deploy-project-to-aws",children:"Deploy Project To AWS"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/deploy",children:"Deploy your project"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Setup AWSCLI"}),"\n",(0,n.jsx)(s.li,{children:"Deploy to AWS"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"publish-datasources",children:"Publish Datasources"}),"\n",(0,n.jsxs)(s.p,{children:["Once you have deployed your project to AWS, it will have an S3 bucket just for publishing ",(0,n.jsx)(s.code,{children:"datasources"}),". The name of this bucket is based on the name of your project. If your project is named ",(0,n.jsx)(s.code,{children:"my-project"})," (the name assigned in your package.json file), then the bucket name will be:"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"s3://gp-my-project-datasets\n"})}),"\n",(0,n.jsx)(s.p,{children:"To pubish your data run the following command:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"npm run publish:data\n"})}),"\n",(0,n.jsx)(s.p,{children:"It will ask you if you want to publish all datasources, or choose from a list."}),"\n",(0,n.jsxs)(s.p,{children:["Your datasources will need to have already been imported using ",(0,n.jsx)(s.code,{children:"import:data"})," and exist in the ",(0,n.jsx)(s.code,{children:"data/dist"})," for this to work."]}),"\n",(0,n.jsx)(s.p,{children:"Note if you don't publish your datasources, then your local smoke tests may work properly, but your geoprocessing functions will throw file not found errors in production."}),"\n",(0,n.jsx)(s.h2,{id:"integrate-with-seasketch",children:"Integrate With SeaSketch"}),"\n",(0,n.jsxs)(s.p,{children:["Once you've deployed your project, you will find a file called ",(0,n.jsx)(s.code,{children:"cdk.outputs"})," which contains the URL to the service manifest for your project."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-json",children:'"restApiUrl": "https://xxxyyyyzzz.execute-api.us-west-2.amazonaws.com/prod/",\n'})}),"\n",(0,n.jsxs)(s.p,{children:["Now follow the ",(0,n.jsx)(s.a,{href:"https://docs.seasketch.org/seasketch-documentation/administrators-guide/sketch-classes",children:"SeaSketch instructions"})," to assign services to each of your sketch classes."]}),"\n",(0,n.jsxs)(s.p,{children:["If your sketch class is a Polygon or other feature type, you should assign it both a preprocessing function (for clipping) and a report client. If you installed the ",(0,n.jsx)(s.code,{children:"template-ocean-eez"})," starter template then your preprocessor is called ",(0,n.jsx)(s.code,{children:"clipToOceanEez"})," and report client is named ",(0,n.jsx)(s.code,{children:"MpaTabReport"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"If your sketch class is a collection then you only need to assign it a report client. Since we build report clients that work on both individual sketches and sketch collections, you can assign the same report client to your collection as you assigned to your individual sketch class(es)."}),"\n",(0,n.jsx)(s.p,{children:"This should give you the sense that you can create different report clients for different sketch classes within the same project. Or even make reports for sketch collections completely different from reports for individual sketches."}),"\n",(0,n.jsx)(s.p,{children:"Create a sketch and run your reports to make sure it all works!"}),"\n",(0,n.jsx)(s.h2,{id:"build-up-your-tests",children:"Build Up Your Tests"}),"\n",(0,n.jsx)(s.p,{children:"Test different sketch and collection scenarios. Here's some possibilities:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"draw a sketch that covers the entire planning area"}),"\n",(0,n.jsx)(s.li,{children:"draw a tiny sketch"}),"\n",(0,n.jsx)(s.li,{children:"draw two sketches that overlap and put them in a collection. Make sure overlap is handled properly in reports."}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["When you find a sketch that produces an error in your reports in SeaSketch, in most cases you should be able to reproduce it in your local environment. To do this, export the sketch as a GeoJSON file, and put it in your ",(0,n.jsx)(s.code,{children:"examples/sketches"})," directory and run your smoke tests. If the geoprocessing functions all succeed, then load storybook and see if you can produce an error in the browser."]}),"\n",(0,n.jsx)(s.h2,{id:"additional-guides",children:"Additional Guides"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/preprocessing",children:"Create a custom preprocessing function"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/geoprocessing",children:"Learn more about geoprocessing functions"})}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/gip/GIP-1-i18n#language-translation-tutorial",children:"Setup language translation (i18n)"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Language translation takes effort to maintain. It is suggested that you get your reports close to final, in the English language, and then dig in."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/workers",children:"Worker Functions"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sketchAttributes",children:"Custom Sketch Attributes"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/extraParams",children:"Extra Function Parameters"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/multiBoundary/",children:"Multi-Boundary"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/antimeridian",children:"Antimeridian"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"what-next",children:"What Next"}),"\n",(0,n.jsxs)(s.p,{children:["Still have more questions? ",(0,n.jsx)(s.a,{href:"https://github.com/seasketch/geoprocessing/discussions",children:"Start a discussion"})," on Github."]})]})}function h(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},28453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>l});var n=r(96540);const t={},o=n.createContext(t);function i(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[31429],{76254:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var n=r(74848),t=r(28453);const o={},i="Create New Geoprocessing Project",l={id:"tutorials/newproject",title:"Create New Geoprocessing Project",description:"This tutorial walks you through designing and creating your own geoprocessing report. It covers many of the questions and decisions you might face along the way.",source:"@site/docs/tutorials/newproject.md",sourceDirName:"tutorials",slug:"/tutorials/newproject",permalink:"/geoprocessing/docs/next/tutorials/newproject",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/tutorials/newproject.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"Create Sample Project",permalink:"/geoprocessing/docs/next/tutorials/sampleproject"},next:{title:"Setup Existing Project",permalink:"/geoprocessing/docs/next/tutorials/existingproject"}},c={},a=[{value:"Where Do I Start?",id:"where-do-i-start",level:2},{value:"Design",id:"design",level:3},{value:"Start Simple",id:"start-simple",level:3},{value:"Create A SeaSketch Project",id:"create-a-seasketch-project",level:2},{value:"Initialize New Geoprocessing Project",id:"initialize-new-geoprocessing-project",level:2},{value:"Create Your First Report",id:"create-your-first-report",level:2},{value:"Build Your Project",id:"build-your-project",level:2},{value:"Deploy Project To AWS",id:"deploy-project-to-aws",level:2},{value:"Publish Datasources",id:"publish-datasources",level:2},{value:"Integrate With SeaSketch",id:"integrate-with-seasketch",level:2},{value:"Build Up Your Tests",id:"build-up-your-tests",level:2},{value:"Additional Guides",id:"additional-guides",level:2},{value:"What Next",id:"what-next",level:2}];function d(e){const s={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",p:"p",pre:"pre",ul:"ul",...(0,t.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(s.header,{children:(0,n.jsx)(s.h1,{id:"create-new-geoprocessing-project",children:"Create New Geoprocessing Project"})}),"\n",(0,n.jsx)(s.p,{children:"This tutorial walks you through designing and creating your own geoprocessing report. It covers many of the questions and decisions you might face along the way."}),"\n",(0,n.jsx)(s.p,{children:"This tutorial assumes:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Your ",(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/",children:"system setup"})," is complete"]}),"\n",(0,n.jsxs)(s.li,{children:["You completed the ",(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject",children:"sample project tutorial"})]}),"\n",(0,n.jsx)(s.li,{children:"Your geoprocessing virtual environment is currently running (Devcontainer or WSL)"}),"\n",(0,n.jsx)(s.li,{children:"You have VSCode open in your virtual environment with a terminal pane open"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"where-do-i-start",children:"Where Do I Start?"}),"\n",(0,n.jsx)(s.p,{children:"Creating a geoprocessing project is not linear, it's iterative. You don't need to have all the answers for your project or understand all the features of the framework. Here's one approach:"}),"\n",(0,n.jsx)(s.h3,{id:"design",children:"Design"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:["Put together a rough design ",(0,n.jsx)(s.a,{href:"https://docs.google.com/document/d/1Qe7pZYmwg7ggRY9ocu3tpdTQkvuIHMr38wLxrjSitpU/edit?usp=sharing",children:"template"}),". This one asks common questions and is a good place to capture decisions."]}),"\n",(0,n.jsxs)(s.li,{children:["Explore the geoprocessing ",(0,n.jsx)(s.a,{href:"/storybook",children:"UI components library"}),"."]}),"\n",(0,n.jsx)(s.li,{children:"Look at other SeaSketch Reports and find ideas that match your needs."}),"\n"]}),"\n",(0,n.jsx)(s.h3,{id:"start-simple",children:"Start Simple"}),"\n",(0,n.jsx)(s.p,{children:"If it's not clear at this point, the geoprocessing framework is not a one-side-fits-all solution, it's a set of building blocks. Which ones you use are up to you."}),"\n",(0,n.jsx)(s.p,{children:"It takes time to figure out how it all works so keep it simple to start:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"single planning boundary or none at all"}),"\n",(0,n.jsx)(s.li,{children:"simple measurable objectives (overlap area, % area overlap, overlap feature count)"}),"\n",(0,n.jsx)(s.li,{children:"smaller datasets"}),"\n",(0,n.jsx)(s.li,{children:"no groupno classification of sketch types (e.g. protection levels)"}),"\n",(0,n.jsx)(s.li,{children:"no need to handle overlapping sketch polygons"}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["A good example of this is ",(0,n.jsx)(s.a,{href:"https://github.com/underbluewaters/oregon-next",children:"Oregon"})," SeaSketch reports."]}),"\n",(0,n.jsx)(s.p,{children:"Then as your planning process gets more complex:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"multiple planning boundaries (offshore/nearshore)"}),"\n",(0,n.jsx)(s.li,{children:"multiple objectives with targets"}),"\n",(0,n.jsx)(s.li,{children:"large datasets with multiple data subclasses."}),"\n",(0,n.jsx)(s.li,{children:"long running analysis with required precalculation"}),"\n",(0,n.jsx)(s.li,{children:"use of a sketch classification system (e.g. protection levels)"}),"\n",(0,n.jsx)(s.li,{children:"need to enforce rules about overlapping sketches"}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Your project can benefit from more advanced features:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"Geography"})," records representing project planning boundaries"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"Metric"})," records for representing multi-dimensional analysis results."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"Objective"})," records representing objective targets per sketch class."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"MetricGroup"})," records reresenting relationship of metric results to their data classes, datasource, objective target, etc."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"toolbox"})," for calculating overlay analysis metrics at the collection level in many dimensions - by data class, by protection level, by planning boundary.","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"overlapFeatures"}),", ",(0,n.jsx)(s.code,{children:"rasterMetrics"}),", ",(0,n.jsx)(s.code,{children:"overlapFeaturesGroupMetrics"}),", ",(0,n.jsx)(s.code,{children:"overlapRasterGroupMetrics"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:["UI components that can work multi-dimensional metrics","\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"ClassTable"}),", ",(0,n.jsx)(s.code,{children:"SketchClassTable"}),", ",(0,n.jsx)(s.code,{children:"GeographySwitcher"})]}),"\n"]}),"\n"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"precalc"})," command automating pre-calculation of overlay stats for combinations of Datasources and Geographies."]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.code,{children:"worker"})," functions to run spread out geoprocessing work to run in parallel."]}),"\n",(0,n.jsxs)(s.li,{children:["Language ",(0,n.jsx)(s.code,{children:"translation"})," workflow and library of pre-translated UI components."]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"Examples of more complex projects:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/california-reports",children:"California"})," - multiple geographies presented in reports (planning boundaries, bioregions), worker functions"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/bermuda-reports-next",children:"Bermuda"})," - IUCN classification system with metrics calculated overall, per protection level, and per sketch. worker functions"]}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/azores-nearshore-reports",children:"Blue Azores nearshore"})," - user switching between planning geographies."]}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"https://github.com/seasketch/samoa-reports",children:"Samoa Reports"})}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/azores-nearshore-reports",children:"Azores Nearshore Reports"}),"."]}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"create-a-seasketch-project",children:"Create A SeaSketch Project"}),"\n",(0,n.jsxs)(s.p,{children:["First things first, follow the ",(0,n.jsx)(s.a,{href:"https://docs.seasketch.org/seasketch-documentation/administrators-guide/getting-started",children:"instructions"})," to create a new SeaSketch project. This includes defining the planning bounds and ",(0,n.jsx)(s.a,{href:"https://docs.seasketch.org/seasketch-documentation/administrators-guide/sketch-classes",children:"creating a Sketch class"}),". You will want to create a ",(0,n.jsx)(s.code,{children:"Polygon"})," sketch class with a name that makes sense for you project (e.g. MPA for Marine Protected Area) and then also a ",(0,n.jsx)(s.code,{children:"Collection"})," sketch class to group instances of your polygon sketch class into. Note that sketch classes are where you will integrate your geoprocessing services to view reports, but you will not do it at this time."]}),"\n",(0,n.jsx)(s.h2,{id:"initialize-new-geoprocessing-project",children:"Initialize New Geoprocessing Project"}),"\n",(0,n.jsx)(s.p,{children:"Start with initializing a new project:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-sh",children:"cd /workspaces\nnpx @seasketch/geoprocessing@7.0.0-beta.13 init 7.0.0-beta.13\n"})}),"\n",(0,n.jsx)(s.p,{children:"Tips:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"the answers to all of the init questions can be changed later, so don't worry if you don't know the answer."}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"https://github.com/seasketch/next/blob/master/LICENSE",children:"SeaSketch"})," uses a BSD-3 license (the default choice). You can choose any including ",(0,n.jsx)(s.code,{children:"UNLICENSED"}),' meaning proprietary or "All rights reserved" .']}),"\n",(0,n.jsxs)(s.li,{children:["The most common AWS region is ",(0,n.jsx)(s.code,{children:"us-west-1"})," or ",(0,n.jsx)(s.code,{children:"us-east-2"}),". ",(0,n.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html",children:"Choose the region"})," closest to your project."]}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["Learn more about your projects ",(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/structure",children:"structure"})]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#create-git-repo",children:"Create Github repo and push"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/linkData",children:"Link data into workspace"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"create-your-first-report",children:"Create Your First Report"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#reef-report",children:"Low-level vector report"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#benthic-habitat-report",children:"High-level vector report"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#seamount-report",children:"Low-level raster report"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sampleproject#coral-species-report",children:"High-level raster report"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"build-your-project",children:"Build Your Project"}),"\n",(0,n.jsxs)(s.p,{children:["The application ",(0,n.jsx)(s.code,{children:"build"})," proceess packages it for deployment. Specifically it:"]}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Checks all the Typescript code to make sure it's valid and types are used properly."}),"\n",(0,n.jsx)(s.li,{children:"Transpiles all Typescript to Javascript"}),"\n",(0,n.jsxs)(s.li,{children:["Bundles UI report clients into the ",(0,n.jsx)(s.code,{children:".build-web"})," directory"]}),"\n",(0,n.jsxs)(s.li,{children:["Bundles geoprocessing and preprocessing functions into the ",(0,n.jsx)(s.code,{children:".build"})," directory."]}),"\n"]}),"\n",(0,n.jsx)(s.p,{children:"To build your application run the following:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,n.jsxs)(s.p,{children:["If the build step fails, you will need to look at the error message and figure out what you need to do. Did it fail in building the functions or the clients? 99% of the time you should be able to catch these errors sooner. If VSCode finds invalid Typescript code, it will warn you with files marked in ",(0,n.jsx)(s.code,{children:"red"})," in the Explorer panel or with red markes and squiggle text in any of the files."]}),"\n",(0,n.jsx)(s.p,{children:"If you're still not sure try some of the following:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Run your smoke tests, see if they pass"}),"\n",(0,n.jsx)(s.li,{children:"When was the last time your build did succeed? You can be sure the error is caused by a change you made since then either in your project code, by upgrading your geoprocessing library version and not migratin fully, or by changing something on your system."}),"\n",(0,n.jsx)(s.li,{children:"You can stash your current changes or commit them to a branch so they are not lost. Then sequentially check out previous commits of the code until you find one that builds properly. Now you know that the next commit cause the build error."}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"deploy-project-to-aws",children:"Deploy Project To AWS"}),"\n",(0,n.jsx)(s.p,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/deploy",children:"Deploy your project"})}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Setup AWSCLI"}),"\n",(0,n.jsx)(s.li,{children:"Deploy to AWS"}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"publish-datasources",children:"Publish Datasources"}),"\n",(0,n.jsxs)(s.p,{children:["Once you have deployed your project to AWS, it will have an S3 bucket just for publishing ",(0,n.jsx)(s.code,{children:"datasources"}),". The name of this bucket is based on the name of your project. If your project is named ",(0,n.jsx)(s.code,{children:"my-project"})," (the name assigned in your package.json file), then the bucket name will be:"]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{children:"s3://gp-my-project-datasets\n"})}),"\n",(0,n.jsx)(s.p,{children:"To pubish your data run the following command:"}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-bash",children:"npm run publish:data\n"})}),"\n",(0,n.jsx)(s.p,{children:"It will ask you if you want to publish all datasources, or choose from a list."}),"\n",(0,n.jsxs)(s.p,{children:["Your datasources will need to have already been imported using ",(0,n.jsx)(s.code,{children:"import:data"})," and exist in the ",(0,n.jsx)(s.code,{children:"data/dist"})," for this to work."]}),"\n",(0,n.jsx)(s.p,{children:"Note if you don't publish your datasources, then your local smoke tests may work properly, but your geoprocessing functions will throw file not found errors in production."}),"\n",(0,n.jsx)(s.h2,{id:"integrate-with-seasketch",children:"Integrate With SeaSketch"}),"\n",(0,n.jsxs)(s.p,{children:["Once you've deployed your project, you will find a file called ",(0,n.jsx)(s.code,{children:"cdk.outputs"})," which contains the URL to the service manifest for your project."]}),"\n",(0,n.jsx)(s.pre,{children:(0,n.jsx)(s.code,{className:"language-json",children:'"restApiUrl": "https://xxxyyyyzzz.execute-api.us-west-2.amazonaws.com/prod/",\n'})}),"\n",(0,n.jsxs)(s.p,{children:["Now follow the ",(0,n.jsx)(s.a,{href:"https://docs.seasketch.org/seasketch-documentation/administrators-guide/sketch-classes",children:"SeaSketch instructions"})," to assign services to each of your sketch classes."]}),"\n",(0,n.jsxs)(s.p,{children:["If your sketch class is a Polygon or other feature type, you should assign it both a preprocessing function (for clipping) and a report client. If you installed the ",(0,n.jsx)(s.code,{children:"template-ocean-eez"})," starter template then your preprocessor is called ",(0,n.jsx)(s.code,{children:"clipToOceanEez"})," and report client is named ",(0,n.jsx)(s.code,{children:"MpaTabReport"}),"."]}),"\n",(0,n.jsx)(s.p,{children:"If your sketch class is a collection then you only need to assign it a report client. Since we build report clients that work on both individual sketches and sketch collections, you can assign the same report client to your collection as you assigned to your individual sketch class(es)."}),"\n",(0,n.jsx)(s.p,{children:"This should give you the sense that you can create different report clients for different sketch classes within the same project. Or even make reports for sketch collections completely different from reports for individual sketches."}),"\n",(0,n.jsx)(s.p,{children:"Create a sketch and run your reports to make sure it all works!"}),"\n",(0,n.jsx)(s.h2,{id:"build-up-your-tests",children:"Build Up Your Tests"}),"\n",(0,n.jsx)(s.p,{children:"Test different sketch and collection scenarios. Here's some possibilities:"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"draw a sketch that covers the entire planning area"}),"\n",(0,n.jsx)(s.li,{children:"draw a tiny sketch"}),"\n",(0,n.jsx)(s.li,{children:"draw two sketches that overlap and put them in a collection. Make sure overlap is handled properly in reports."}),"\n"]}),"\n",(0,n.jsxs)(s.p,{children:["When you find a sketch that produces an error in your reports in SeaSketch, in most cases you should be able to reproduce it in your local environment. To do this, export the sketch as a GeoJSON file, and put it in your ",(0,n.jsx)(s.code,{children:"examples/sketches"})," directory and run your smoke tests. If the geoprocessing functions all succeed, then load storybook and see if you can produce an error in the browser."]}),"\n",(0,n.jsx)(s.h2,{id:"additional-guides",children:"Additional Guides"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/preprocessing",children:"Create a custom preprocessing function"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/geoprocessing",children:"Learn more about geoprocessing functions"})}),"\n",(0,n.jsxs)(s.li,{children:[(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/gip/GIP-1-i18n#language-translation-tutorial",children:"Setup language translation (i18n)"}),"\n",(0,n.jsxs)(s.ul,{children:["\n",(0,n.jsx)(s.li,{children:"Language translation takes effort to maintain. It is suggested that you get your reports close to final, in the English language, and then dig in."}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/workers",children:"Worker Functions"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/sketchAttributes",children:"Custom Sketch Attributes"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/tutorials/extraParams",children:"Extra Function Parameters"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/multiBoundary/",children:"Multi-Boundary"})}),"\n",(0,n.jsx)(s.li,{children:(0,n.jsx)(s.a,{href:"/geoprocessing/docs/next/antimeridian",children:"Antimeridian"})}),"\n"]}),"\n",(0,n.jsx)(s.h2,{id:"what-next",children:"What Next"}),"\n",(0,n.jsxs)(s.p,{children:["Still have more questions? ",(0,n.jsx)(s.a,{href:"https://github.com/seasketch/geoprocessing/discussions",children:"Start a discussion"})," on Github."]})]})}function h(e={}){const{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,n.jsx)(s,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},28453:(e,s,r)=>{r.d(s,{R:()=>i,x:()=>l});var n=r(96540);const t={},o=n.createContext(t);function i(e){const s=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),n.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e6688bcd.1e0da28d.js b/assets/js/e6688bcd.27636be0.js similarity index 99% rename from assets/js/e6688bcd.1e0da28d.js rename to assets/js/e6688bcd.27636be0.js index 30441fc41..08a453bb6 100644 --- a/assets/js/e6688bcd.1e0da28d.js +++ b/assets/js/e6688bcd.27636be0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[21895],{88794:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var s=t(74848),r=t(28453);const a={},o="Create Sample Project",i={id:"tutorials/sampleproject",title:"Create Sample Project",description:"This tutorial walks through creating a sample geoprocessing project for the Federated States of Micronesia. It demonstrates multiple methods for doing spatial analysis and creating reports, from low-level to high-level, so that you can engage with it at any/all of the levels needed for your project.",source:"@site/docs/tutorials/sampleproject.md",sourceDirName:"tutorials",slug:"/tutorials/sampleproject",permalink:"/geoprocessing/docs/next/tutorials/sampleproject",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/tutorials/sampleproject.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"System Setup",permalink:"/geoprocessing/docs/next/tutorials/"},next:{title:"Create New Project",permalink:"/geoprocessing/docs/next/tutorials/newproject"}},c={},l=[{value:"Initialize Geoprocessing Project",id:"initialize-geoprocessing-project",level:2},{value:"Create Git repo",id:"create-git-repo",level:2},{value:"Preprocessing",id:"preprocessing",level:2},{value:"Testing",id:"testing",level:3},{value:"Simple Report",id:"simple-report",level:2},{value:"simpleFunction",id:"simplefunction",level:3},{value:"SimpleReport",id:"simplereport",level:3},{value:"Language Translation",id:"language-translation",level:3},{value:"Generate Examples",id:"generate-examples",level:3},{value:"Run test suite",id:"run-test-suite",level:3},{value:"Storybook",id:"storybook",level:3},{value:"Simple Function Modifications",id:"simple-function-modifications",level:3},{value:"Simple Report Modification",id:"simple-report-modification",level:3},{value:"First Project Build",id:"first-project-build",level:3},{value:"Reef Report",id:"reef-report",level:2},{value:"Import Data",id:"import-data",level:3},{value:"Precalc Data",id:"precalc-data",level:3},{value:"Create Report",id:"create-report",level:3},{value:"Add to Tab Report",id:"add-to-tab-report",level:3},{value:"Benthic Habitat Report",id:"benthic-habitat-report",level:2},{value:"Import Data",id:"import-data-1",level:3},{value:"Precalc Data",id:"precalc-data-1",level:3},{value:"World Geography",id:"world-geography",level:3},{value:"Add Metric Group",id:"add-metric-group",level:3},{value:"Create Report",id:"create-report-1",level:3},{value:"Test New Example Sketch",id:"test-new-example-sketch",level:3},{value:"Add To Tab Report",id:"add-to-tab-report-1",level:3},{value:"Seamount Report",id:"seamount-report",level:2},{value:"Import Data",id:"import-data-2",level:3},{value:"Precalc Data",id:"precalc-data-2",level:3},{value:"Add Objective",id:"add-objective",level:3},{value:"Add Metric Group",id:"add-metric-group-1",level:3},{value:"Create Report",id:"create-report-2",level:3},{value:"Add To Tab Report",id:"add-to-tab-report-2",level:3},{value:"Data Complexity",id:"data-complexity",level:3},{value:"Coral Species Report",id:"coral-species-report",level:2},{value:"Import Data",id:"import-data-3",level:3},{value:"Precalc",id:"precalc",level:3},{value:"Add Metric Group",id:"add-metric-group-2",level:3},{value:"Add Objective",id:"add-objective-1",level:3},{value:"Create Report",id:"create-report-3",level:3},{value:"Add To Tab Report",id:"add-to-tab-report-3",level:3},{value:"Language Translation",id:"language-translation-1",level:3},{value:"Create Github Project",id:"create-github-project",level:2},{value:"What's Next",id:"whats-next",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"create-sample-project",children:"Create Sample Project"})}),"\n",(0,s.jsx)(n.p,{children:"This tutorial walks through creating a sample geoprocessing project for the Federated States of Micronesia. It demonstrates multiple methods for doing spatial analysis and creating reports, from low-level to high-level, so that you can engage with it at any/all of the levels needed for your project."}),"\n",(0,s.jsx)(n.p,{children:"The planning area for this example is defined as extending from the Micronesia baseline (coastline/shoreline) to the outer boundary of the Exclusive Economic Zone (200 nautical miles)."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"EEZ with land",src:t(94616).A+"",width:"2113",height:"1099"})}),"\n",(0,s.jsx)(n.p,{children:"This tutorial assumes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Your ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/",children:"system setup"})," is complete"]}),"\n",(0,s.jsx)(n.li,{children:"Your geoprocessing virtual environment is running (Devcontainer or WSL)"}),"\n",(0,s.jsx)(n.li,{children:"You have VSCode open in your virtual environment with a terminal pane open"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Have questions along the way? Start a ",(0,s.jsx)(n.a,{href:"https://github.com/seasketch/geoprocessing/discussions",children:"discussion"})," on Github"]}),"\n",(0,s.jsx)(n.h2,{id:"initialize-geoprocessing-project",children:"Initialize Geoprocessing Project"}),"\n",(0,s.jsxs)(n.p,{children:["Start the project ",(0,s.jsx)(n.code,{children:"init"})," process, which will download the framework, and collect required project metadata."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"cd /workspaces\nnpx @seasketch/geoprocessing@7.0.0-beta.12 init 7.0.0-beta.12\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Choose a name for your project\nfsm-reports-test\n? Please provide a short description of this project\nMicronesia reports\n? Source code repository location\n[LEAVE BLANK]\n? Your name\n[YOUR_NAME]\n? Your email\n[YOUR_EMAIL]\n? Organization name (optional)\nExample organization\n? What software license would you like to use?\nBSD-3-Clause\n? What AWS region would you like to deploy functions in?\nus-west-1\n? What languages will your reports be published in, other than English? (leave blank for none)\nChuukese\nKosraean\n"})}),"\n",(0,s.jsx)(n.p,{children:"After pressing Enter, your project will be created and all NodeJS software dependencies installed. If your language is not present, you will be able to add it later."}),"\n",(0,s.jsx)(n.p,{children:"Now, re-open VSCode one level deeper, in your project folder::"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"File -> Open Folder\nType /workspaces/fsm-reports-test/\nPress Ctrl-J or Ctrl-backtick to open a new terminal\n"})}),"\n",(0,s.jsx)(n.h2,{id:"create-git-repo",children:"Create Git repo"}),"\n",(0,s.jsx)(n.p,{children:"Before you continue, let's create a local git repository and commit everything so far as a starting point."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'git init\ngit add .\ngit commit -m "first commit"\ngit branch -M main\n'})}),"\n",(0,s.jsxs)(n.p,{children:["After this point, you can continue using git commands in the terminal to stage code changes and commit them if that's what you know, or you can use VSCode's ",(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/docs/sourcecontrol/overview",children:"built-in git support"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about your projects folder structure, visit the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/structure",children:"structure"})," page."]}),"\n",(0,s.jsx)(n.h2,{id:"preprocessing",children:"Preprocessing"}),"\n",(0,s.jsx)(n.p,{children:'Preprocessing functions are invoked by the SeaSketch platform, on a user-drawn shape, right after the user finishes drawing it. It\'s a specialized function that validates a drawn shape and potentially modifies it, such as to remove portions of the shape outside the planning boundary. This "clipping" of the shape is useful in that it allows a user to overdraw beyond the planning boundary and it will be clipped right to the edge of that boundary.'}),"\n",(0,s.jsx)(n.p,{children:"Here is an example of a preprocessor clipping a user drawn polygon to erase any part overlapping with land"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Before Clip"}),(0,s.jsx)(n.th,{children:"After Clip"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{alt:"Before",src:t(58667).A+"",title:"Before",width:"885",height:"708"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{alt:"After",src:t(41538).A+"",title:"After",width:"773",height:"618"})})]})})]}),"\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.code,{children:"src/functions"})," directory you will find four preprocessing functions that come with every project, and they are further configureable to meet your needs:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"validatePolygon"})," - verifies shape is not self-crossing, is at least a certain size (default to 500 square meters) and no larger than a certain size (defaults to 1 million square kilometers)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clipToLand"})," - clips the shape to just the portion on land, as defined by OpenStreeMap land polygons. Includes validatePolygon."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clipToOcean"})," - clips the shape to remove the portion on land, as defined by OpenStreetMap land polygons. Includes validatePolygon."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clipToOceanEez"})," - clips the shape to keep the portion within the boundary from the coastline to the outer boundary of the EEZ. Includes validatePolygon."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["These functions use datasources published by the ",(0,s.jsx)(n.a,{href:"https://github.com/seasketch/global-datasources/tree/main",children:"global datasources"})," project. These datasources can be replaced with more authoritative ones in your own projects, or you can follow the instructions on the website to export the specific subset of the data relevant to your project, and import it directly into your project."]}),"\n",(0,s.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,s.jsx)(n.p,{children:"Each preprocessing function has its own unit test and smoke test file. For example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Unit: ",(0,s.jsx)(n.code,{children:"src/functions/validatePolygon.test.ts"})]}),"\n",(0,s.jsxs)(n.li,{children:["Smoke: ",(0,s.jsx)(n.code,{children:"src/functions/validatePolygonSmoke.test.ts"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Unit tests"})," ensure the preprocessor produces exact output for very specific input features and configuration, and throws errors properly."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Smoke tests"}),' are about ensuring the preprocessor behaves properly for your project location, and that its results "look right" for a variety of input features. It does this by loading example shapes from the project ',(0,s.jsx)(n.code,{children:"examples/features"})," directory. It then runs the preprocessing function on the examples, makes sure they produce output, and saves them to ",(0,s.jsx)(n.code,{children:"examples/output"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To test your preprocessing functions, we need to create example features within the extent of our Micronesian planning area. To do this, run the following script:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'npx tsx scripts/genRandomPolygon.ts --outDir examples/features --filename polygon1.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]"\nnpx tsx scripts/genRandomPolygon.ts --outDir examples/features --filename polygon2.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]"\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This will output an example Feature and an example FeatureCollection to ",(0,s.jsx)(n.code,{children:"examples/features"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Now run the tests:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm test\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You can now look at the geojson output files in the ",(0,s.jsx)(n.code,{children:"examples/output"})," directory, including visually by opening them in QGIS or pasting the JSON into geojson.io. This is the best way to visually verify the preprocessor worked as expected."]}),"\n",(0,s.jsx)(n.p,{children:"This is a good checkpoint to commit your latest changes to Github."}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about preprocessing, check out the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/preprocessing",children:"guide"})]}),"\n",(0,s.jsx)(n.h2,{id:"simple-report",children:"Simple Report"}),"\n",(0,s.jsx)(n.p,{children:"Your new project comes with a simple report that calculates the area of a sketch or sketch collection and presents it in a human readable format. Let's look at the pieces that go into this report."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Simple Card View",src:t(44424).A+"",width:"964",height:"661"})}),"\n",(0,s.jsx)(n.h3,{id:"simplefunction",children:"simpleFunction"}),"\n",(0,s.jsxs)(n.p,{children:["The area calculation is done within a geoprocessing function in ",(0,s.jsx)(n.code,{children:"src/functions/simpleFunction.ts"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Geoprocessing functions are invoked by a report client, as soon as its loaded in the browser by SeaSketch. It's a specialized function that takes a Sketch polygon or collection of Sketch polygons, performs some analysis, and returns the result to be displayed in the report client."}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/functions/simpleFunction.ts"})," and you will notice this function defines a custom result payload called ",(0,s.jsx)(n.code,{children:"SimpleResults"}),", which in this case is a Javascript object with an ",(0,s.jsx)(n.code,{children:"area"})," property containing a number value."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export interface SimpleResults {\n /** area of sketch within geography in square meters */\n area: number;\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"simpleFunction"})," starts off with the basic signature of a geoprocessing function. It accepts a ",(0,s.jsx)(n.code,{children:"sketch"})," parameter that is either a single ",(0,s.jsx)(n.code,{children:"Sketch"})," polygon or a ",(0,s.jsx)(n.code,{children:"SketchCollection"})," with multiple Sketch polygons. Unless your planning project only requires users to design single sketches and not collections, your geoprocessing function must be able to handle both."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"async function simpleFunction(\n sketch:\n | Sketch\n | SketchCollection,\n): Promise {\n"})}),"\n",(0,s.jsx)(n.p,{children:"The function then performs its analysis and returns the result."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"// Add analysis code\nconst sketchArea = area(sketch);\n\n// Custom return type\nreturn {\n area: sketchArea,\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Below that, a new ",(0,s.jsx)(n.code,{children:"GeoprocessingHandler"})," is instantiated, with simpleFunction passed into it. Behind the scenes, this wraps simpleFunction in an AWS Lambda handler function, which once deployed to AWS, allows the geoprocessing function to be invoked using an API call, by a report client running in a web browser."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'export default new GeoprocessingHandler(simpleFunction, {\n title: "simpleFunction",\n description: "Function description",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"GeoprocessingHandler"})," requires a ",(0,s.jsx)(n.code,{children:"title"})," and ",(0,s.jsx)(n.code,{children:"description"}),", which uniquely identifies the function that will be published by your project. It also accepts some additional parameters defining what resources the Lamda should have, and its behavior:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"timeout"}),": how many seconds the Lambda will run before it times out in error."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"memory"}),": memory allocated to the Lambda, can go up to 10,240 MB. Number of processors increase with memory size automatically."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"executionMode"}),": determines how the report client waits for geoprocessing function results, defaults to async. Sync - wait with connection open for immediate results, Async - wait for web socket message that results are ready, then fetch. Sync should only be used for very fast geoprocessing functions (1-2 seconds max). Think of it as a performance optimization."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You can change all these parameter values to suit your needs, but the default values are suitable for now."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"simpleFunction"})," is already registered as a geoprocessing function in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Now let's look at the browser report client that invokes this function."}),"\n",(0,s.jsx)(n.h3,{id:"simplereport",children:"SimpleReport"}),"\n",(0,s.jsxs)(n.p,{children:["A report client is a top-level React component for rendering a report in the users web browser. Report clients are located in the ",(0,s.jsx)(n.code,{children:"src/clients"})," directory and are responsible for the layout of one or more ",(0,s.jsx)(n.code,{children:"Card"})," components. Cards are able to invoke geoprocessing functions and display their results."]}),"\n",(0,s.jsx)(n.p,{children:"The two report clients that come with your project are:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"SimpleReport.tsx"})," - simple one page report client containing a SketchAttributesCard and a SimpleCard."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"TabReport.tsx"})," - more complex multi-page report layout controlled by a tab switcher component, so that only one page is in view at a time."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Both these report clients are already registered in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"}),". To start, let's focus on ",(0,s.jsx)(n.code,{children:"SimpleReport"})," and ",(0,s.jsx)(n.code,{children:"SimpleCard"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"export const SimpleReport = () => {\n return (\n \n \n \n \n );\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["SimpleReport renders two cards, ",(0,s.jsx)(n.code,{children:"SimpleCard"})," and ",(0,s.jsx)(n.code,{children:"SketchAttributesCard"}),", wrapping them in a languge ",(0,s.jsx)(n.code,{children:"Translator"})," component (you will learn more about this later)."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"SketchAttributes"})," card is a card component that displays the properties of the users Sketch. No geoprocessing function is needed to do its work."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"SimpleCard"})," is a card component that invokes simpleFunction and displays its results. Let's look at it closer."]}),"\n",(0,s.jsxs)(n.p,{children:["The first thing to notice is that SimpleCard renders a ",(0,s.jsx)(n.code,{children:"ResultsCard"})," component. Behind the scenes ResultsCard invokes the geoprocessing function with the ",(0,s.jsx)(n.code,{children:"functionName"})," provided (simpleFunction). Keep in mind that in a production environment the ResultsCard is rendered in your web browser and the geoprocessing function is a Lambda function in Amazon's cloud invoked via an API call."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'\n'})}),"\n",(0,s.jsx)(n.p,{children:"ResultsCard then contains a render function that is provided with the results."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'{\n (data: SimpleResults) => {\n const areaSqKm = data.area / 1_000_000;\n const areaString = roundDecimalFormat(areaSqKm, 0, {\n keepSmallValues: true,\n });\n const sketchStr = isCollection ? t("sketch collection") : t("sketch");\n\n return (\n <>\n

\n \n This {{ sketchStr }} is {{ areaString }} square kilometers.\n \n

\n \n );\n };\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This render function takes an input parameter ",(0,s.jsx)(n.code,{children:"data"})," that has the same type (",(0,s.jsx)(n.code,{children:"SimpleResults"}),") as the return type of ",(0,s.jsx)(n.code,{children:"simpleFunction"}),". This gives you fully typed access to your report results."]}),"\n",(0,s.jsxs)(n.p,{children:["The code in this render function is the heart of each report card. This particular card takes the ",(0,s.jsx)(n.code,{children:"area"})," value it is given in square meters, and converts it to square kilometers. It then rounds it to a whole number, and formats it to make it more readable. Also notice that it renders a slightly different message depending on whether it is a single sketch or a sketch collection being reported on."]}),"\n",(0,s.jsx)(n.h3,{id:"language-translation",children:"Language Translation"}),"\n",(0,s.jsxs)(n.p,{children:["The last thing to notice is that SimpleCard contains a lot of boilerplate for language translation of its strings (using ",(0,s.jsx)(n.a,{href:"https://react.i18next.com/",children:(0,s.jsx)(n.code,{children:"react-i18next"})}),"). If your reports need to be multi-lingual you will need to to use these, otherwise you can drop them."]}),"\n",(0,s.jsx)(n.p,{children:"Language translation is a multi-part process:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["First, a combination of ",(0,s.jsx)(n.code,{children:"useTranslation"}),", ",(0,s.jsx)(n.code,{children:"t"})," function, and ",(0,s.jsx)(n.code,{children:"Trans"})," components are used to establish which strings in your report client and components should be translated."]}),"\n",(0,s.jsxs)(n.li,{children:["Next, those translateable strings are extracted using the ",(0,s.jsx)(n.code,{children:"extract:translation"})," command, and output to ",(0,s.jsx)(n.code,{children:"src/i18n/lang/en/translation.json"}),". The strings extracted for SimpleCard are:"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "sketch": "sketch",\n "sketch collection": "sketch collection",\n "SimpleCard sketch size message": "This {{sketchStr}} is {{areaString}} square kilometers.",\n}\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The English translation file is then translated to the other needed languages and put into their own translation files"}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"Translator"})," component in your report client is then responsible for inspecting the users language at runtime in the browser and swapping the English strings for strings in the appropriate language."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This process is covered in more detail in a separate doc."}),"\n",(0,s.jsx)(n.h3,{id:"generate-examples",children:"Generate Examples"}),"\n",(0,s.jsxs)(n.p,{children:["With a working geoprocessing function and report client already in place, you're ready to generate example sketches for testing them. We'll use the same ",(0,s.jsx)(n.code,{children:"genRandomPolygon"})," script as before. But let's look closer at how we figured out the bounding box extent of the Micronesian planning area. First, use ogrinfo to inspect the Micronesia EEZ polygon data layer in your data package."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"ogrinfo -so -json data/src/eez_withland_mr.fgb\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Deep in its output you will see a ",(0,s.jsx)(n.code,{children:"geometryFields"})," property, which contains the bounding box extent of the EEZ feature. Use the ",(0,s.jsx)(n.code,{children:"jq"})," utility to extract this extent:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"ogrinfo -so -json data/src/eez_withland_mr.fgb | jq -c .layers[0].geometryFields[0].extent\n[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]\n"})}),"\n",(0,s.jsx)(n.p,{children:"This will output an array with the extent of the EEZ. This is just one of multiple possible methods to get this extent. You are welcome to use the method that works best for you."}),"\n",(0,s.jsx)(n.p,{children:"Now run the genRandomPolygon script with this extent. The following examples will create a Sketch polygon, and then a SketchCollection containing 10 Sketch polygons."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'npx tsx scripts/genRandomPolygon.ts --outDir examples/sketches --filename sketch1.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]" --bboxShrinkFactor 5 --sketch\nnpx tsx scripts/genRandomPolygon.ts --outDir examples/sketches --filename sketchCollection1.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]" --bboxShrinkFactor 5 --sketch --numFeatures 10\n'})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"--bboxShrinkFactor"})," argument used shrinks the height and width of the given bbox by a factor of 5, and then generates random features that are within that reduced bbox. A suitable shrink factor value was discovered through trial and error. Simply visualize the resulting json file in QGIS or other software and find a value that produces polygons that are completely within the planning area polygon. (see image below)."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"EEZ bbox",src:t(81465).A+"",width:"1278",height:"661"}),"\nImage: cluster of 10 random sketches (in orange) within Micronesia EEZ"]}),"\n",(0,s.jsxs)(n.p,{children:["Learn more about the options for ",(0,s.jsx)(n.code,{children:"genRandomPolygon"})," by running:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"npx tsx scripts/genRandomPolygon.ts --help\n"})}),"\n",(0,s.jsx)(n.h3,{id:"run-test-suite",children:"Run test suite"}),"\n",(0,s.jsxs)(n.p,{children:["Now that you have example features and sketches, you can test ",(0,s.jsx)(n.code,{children:"simpleFunction"}),". Run the test suite now:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm test\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Using ",(0,s.jsx)(n.code,{children:"simpleFunctionSmoke.test.ts"}),", simpleFunction will be run against all of the polygon Sketches in ",(0,s.jsx)(n.code,{children:"examples/sketches"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["The results of all smokes tests are output to the ",(0,s.jsx)(n.code,{children:"examples/output"})," directory."]}),"\n",(0,s.jsx)(n.li,{children:"You can inspect the output files, and see the calculated area values for each sketch input."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Commit the output files to your git repository at this time."}),"\n",(0,s.jsxs)(n.p,{children:["You can make changes to simpleFunction, then rerun tests to regenerate them at any time, and delete any that are stale and no longer needed. For advanced use, check out the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/testing",children:"testing"})," guide."]}),"\n",(0,s.jsx)(n.h3,{id:"storybook",children:"Storybook"}),"\n",(0,s.jsx)(n.p,{children:"Storybook is used to view your reports."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run storybook\n"})}),"\n",(0,s.jsx)(n.p,{children:"This will:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Generate a story for every combination of report client registered in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"})," and sketch present in ",(0,s.jsx)(n.code,{children:"examples/sketches"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Load all of the smoke test output for every sketch (to load in stories instead of running geoprocessing functions)"}),"\n",(0,s.jsx)(n.li,{children:"Start the storybook server and give you the URL."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Open the storybook URL in your browser and click through the stories."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Simple Card View",src:t(44424).A+"",width:"964",height:"661"})}),"\n",(0,s.jsx)(n.p,{children:"A powerful feature of Storybook is that when you save edits to your report client or component code, storybook will refresh the browser automatically with the changes. This lets you develop your reports and debug them more quickly."}),"\n",(0,s.jsx)(n.p,{children:"There are a couple of situations that will cause you to need to stop your storybook server (Ctrl-C) and then restart it to pick up the changes."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["you add more sketch examples to your ",(0,s.jsx)(n.code,{children:"examples/sketch"})," directory"]}),"\n",(0,s.jsx)(n.li,{children:"you rerun smoke tests and generate new test output"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Learn more in the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/storybook",children:"storybook guide"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"simple-function-modifications",children:"Simple Function Modifications"}),"\n",(0,s.jsx)(n.p,{children:"Let's enhance your simple geoprocessing function to calculate more detailed information when the report is run on a sketch collection. It should calculate the area of the entire collection, and the area of each child sketch in the collection."}),"\n",(0,s.jsxs)(n.p,{children:["First modify SimpleResults with an additional property ",(0,s.jsx)(n.code,{children:"childSketchAreas"})," that can store this information:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export interface SimpleResults {\n /** area of reef within sketch in square meters */\n area: number;\n childSketchAreas: {\n /** Name of the sketch */\n name: string;\n /** Area of the sketch in square meters */\n area: number;\n }[];\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:"Then calculate the additional values and return them in the result payload:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Add analysis code\nconst sketchArea = area(sketch);\n\nlet childSketchAreas: SimpleResults["childSketchAreas"] = [];\nif (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => ({\n name: sketch.properties.name,\n area: area(sketch),\n }));\n}\n\n// Custom return type\nreturn {\n area: sketchArea,\n childSketchAreas,\n};\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Here's what the final ",(0,s.jsx)(n.code,{children:"simpleFunction"})," code should look like:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/functions/simpleFunction.ts"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {\n Sketch,\n SketchCollection,\n Polygon,\n MultiPolygon,\n GeoprocessingHandler,\n toSketchArray,\n} from "@seasketch/geoprocessing";\nimport { area } from "@turf/turf";\n\nexport interface SimpleResults {\n /** area of reef within sketch in square meters */\n area: number;\n childSketchAreas: {\n /** Name of the sketch */\n name: string;\n /** Area of the sketch in square meters */\n area: number;\n }[];\n}\n\n/**\n * Simple geoprocessing function with custom result payload\n */\nasync function simpleFunction(\n sketch:\n | Sketch\n | SketchCollection,\n): Promise {\n // Add analysis code\n const sketchArea = area(sketch);\n\n let childSketchAreas: SimpleResults["childSketchAreas"] = [];\n if (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => ({\n name: sketch.properties.name,\n area: area(sketch),\n }));\n }\n\n // Custom return type\n return {\n area: sketchArea,\n childSketchAreas,\n };\n}\n\nexport default new GeoprocessingHandler(simpleFunction, {\n title: "simpleFunction",\n description: "Function description",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Run your tests again to generate the new smoke test output:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run test\n"})}),"\n",(0,s.jsx)(n.h3,{id:"simple-report-modification",children:"Simple Report Modification"}),"\n",(0,s.jsxs)(n.p,{children:["Now let's modify SimpleReportCard to display the new data. You will add a new ",(0,s.jsx)(n.code,{children:"Collapse"})," section with a ",(0,s.jsx)(n.code,{children:"Table"})," component that lists out the sketch areas by name."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'

\n \n This {{ sketchStr }} is {{ areaString }} km\xb2.\n \n

\n{isCollection && (\n \n \n roundDecimalFormat(row.area / 1_000_000, 0, {\n keepSmallValues: true,\n }),\n },\n ]}\n />\n \n)}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Here's what the final SimpleCard code should look like:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/components/SimpleCard.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'import React from "react";\nimport { Trans, useTranslation } from "react-i18next";\nimport {\n Collapse,\n ResultsCard,\n Table,\n useSketchProperties,\n} from "@seasketch/geoprocessing/client-ui";\n// Import SimpleResults to type-check data access in ResultsCard render function\nimport { SimpleResults } from "../functions/simpleFunction.js";\nimport { roundDecimalFormat } from "@seasketch/geoprocessing/client-core";\n\nexport const SimpleCard = () => {\n const { t } = useTranslation();\n const [{ isCollection }] = useSketchProperties();\n const titleTrans = t("SimpleCard title", "Simple Report");\n return (\n <>\n \n {(data: SimpleResults) => {\n const areaSqKm = data.area / 1_000_000;\n const areaString = roundDecimalFormat(areaSqKm, 0, {\n keepSmallValues: true,\n });\n const sketchStr = isCollection ? t("sketch collection") : t("sketch");\n\n return (\n <>\n

\n \n This {{ sketchStr }} is {{ areaString }} km\xb2.\n \n

\n {isCollection && (\n \n \n roundDecimalFormat(row.area / 1_000_000, 0, {\n keepSmallValues: true,\n }),\n },\n ]}\n />\n \n )}\n \n );\n }}\n
\n \n );\n};\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"If your storybook is still running from last time, you will need to restart it to pick up the new smoke test output."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"Ctrl-C\nnpm run storybook\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Your updated report should have a new collapsible table, that when expanded looks like the following:\n",(0,s.jsx)(n.img,{alt:"Simple Card with table",src:t(51899).A+"",width:"747",height:"679"})]}),"\n",(0,s.jsx)(n.h3,{id:"first-project-build",children:"First Project Build"}),"\n",(0,s.jsxs)(n.p,{children:["Now that you have confirmed your function is working properly, and your report client displays properly for a variety of example sketches, you are ready to do your first build. The application ",(0,s.jsx)(n.code,{children:"build"})," proceess packages it for deployment. Specifically it:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Checks all the Typescript code to make sure it's valid and types are used properly."}),"\n",(0,s.jsx)(n.li,{children:"Transpiles all Typescript to Javascript"}),"\n",(0,s.jsxs)(n.li,{children:["Bundles UI report clients into the ",(0,s.jsx)(n.code,{children:".build-web"})," directory"]}),"\n",(0,s.jsxs)(n.li,{children:["Bundles geoprocessing and preprocessing functions into the ",(0,s.jsx)(n.code,{children:".build"})," directory."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"To build your application run the following:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,s.jsx)(n.p,{children:"Once your build is successful, you should stage and commit all your changes to git."}),"\n",(0,s.jsx)(n.h2,{id:"reef-report",children:"Reef Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a coral reef report that uses the reef extent dataset. Here is an image of it displayed in QGIS. Notice that the coral is entirely in shallow water around the island coastline and atolls."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Reef Extent",src:t(35162).A+"",width:"2053",height:"1024"})}),"\n",(0,s.jsx)(n.h3,{id:"import-data",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"To access this datasource, first download a data package prepared for FSM to your project space and unzip it:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"wget -P data/src https://github.com/user-attachments/files/18030075/FSM_MSP_Data_Example_v2.zip\nunzip data/src/FSM_MSP_Data_Example_v2.zip -d data/src\nrm data/src/FSM_MSP_Data_Example_v2.zip\n"})}),"\n",(0,s.jsx)(n.p,{children:"Now import the datasource to your project."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of data?\nVector\n? Enter path to src file (with filename)\ndata/src/reefextent.fgb\n? Select layer to import\nreefextent\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nreefextent\n? Should multi-part geometries be split into single-part geometries?\nYes\n? (Optional) additional formats to create (besides fgb)\n[Press enter to skip]\n? Select feature properties that you want to group metrics by\n[Press enter to skip]\n? Select additional feature properties to keep in final datasource\n[Press enter to skip]\n? These formats are automatically created: fgb. Select any additional formats you want created\n[Press enter to skip]\n? Will you be precalculating summary metrics for this datasource after import? (Typically yes if reporting sketch % overlap with datasource)\nYes\n"})}),"\n",(0,s.jsx)(n.p,{children:"The import process will:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"reproject your data to the WGS84 reference system, if not already (required by Turf.JS)"}),"\n",(0,s.jsxs)(n.li,{children:["split any features that cross the 180 degree ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/antimeridian",children:"antimeridian"})]}),"\n",(0,s.jsx)(n.li,{children:"reduce the source dataset down to only the necessary attributes (saving network bandwidth later)"}),"\n",(0,s.jsxs)(n.li,{children:["output a new file in the cloud-optimized flatgeobuf format to the ",(0,s.jsx)(n.code,{children:"data/dist"})," directory."]}),"\n",(0,s.jsxs)(n.li,{children:["register the datasource in ",(0,s.jsx)(n.code,{children:"project/datasources.json"}),", along with additional metadata. This allows you to:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["quickly access project datasources in your reports using the ",(0,s.jsx)(n.code,{children:"projectClient"})," (more on this later)"]}),"\n",(0,s.jsxs)(n.li,{children:["quickly reimport datasources using the ",(0,s.jsx)(n.code,{children:"reimport:data"})," command, without having to answer questions again."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Once the import is finished, you are ready to use your datasources for ",(0,s.jsx)(n.code,{children:"local"})," report development. You can add, edit, or delete records in datasources.json manually to meet your need as long as the records meet the expected ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/concepts#datasources",children:"schema"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"precalc-data",children:"Precalc Data"}),"\n",(0,s.jsx)(n.p,{children:"Next, you will create a standalone script to calculate the total area of the polygons in the reef extent datasource for use in the report. By doing this calculation ahead of time, you won't need to do it every time your geoprocessing function runs. There is an automated way of precalculating the area of a datasource, but the purpose of this is to teach you a workflow for doing it on your own."}),"\n",(0,s.jsxs)(n.p,{children:["Create a new file with the following code and save it to ",(0,s.jsx)(n.code,{children:"scripts/coralReefPrecalc.ts"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Run the following command from the project root directory\n// npx tsx scripts/coralReefPrecalc.ts\n\nimport { area } from "@turf/turf";\nimport { geojson } from "flatgeobuf";\nimport { readFileSync } from "fs";\nimport fs from "fs-extra";\n\n// Fetch all reef features and calculate total area\nconst buffer = readFileSync(\n `${import.meta.dirname}/../data/dist/reefextent.fgb`,\n);\nconst reefFeatures = geojson.deserialize(new Uint8Array(buffer));\nconst totalArea = area(reefFeatures);\n\nconst reefPrecalc = {\n totalAreaSqMeters: totalArea,\n};\n\nfs.ensureDirSync(`${import.meta.dirname}/../data/precalc`);\nfs.writeJsonSync(\n `${import.meta.dirname}/../data/precalc/reefextent.json`,\n reefPrecalc,\n);\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Now run it. Your shell needs to be in the root directory of your project to run this Typescript file directly using ",(0,s.jsx)(n.code,{children:"npx"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npx tsx scripts/coralReefPrecalc.ts\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The script fetches all features from the reef extent flatgeobuf file, calculates their total area and writes it to ",(0,s.jsx)(n.code,{children:"data/precalc/reefextent.json"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "totalArea": 716100906.2570591\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"We are going to use this precalculated value in a geoprocessing function in the next step."}),"\n",(0,s.jsx)(n.h3,{id:"create-report",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"To create a blank report ready to build on, run the following:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run create:report\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of report to create\nBlank report - empty report ready to build from scratch\n\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with reef extent datasource\n\n? Title for this report, in camelCase\ncoralReef\n\n\u2714 Created coralReef report\n\u2714 Registered report assets in project/geoprocessing.json\n\nGeoprocessing function: src/functions/coralReef.ts\nSmoke test: src/functions/coralReefSmoke.test.ts\nReport component: src/components/CoralReefCard.tsx\nStory generator: src/components/CoralReefCard.example-stories.ts\n\nNext Steps:\n * 'npm test' to run smoke tests against your new geoprocessing function\n * 'npm run storybook' to view your new report with smoke test output\n * Add to a top-level report client or page when ready\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/functions/coralReef.ts"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code to answer the following questions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"What percentage of all coral reef is within the current sketch polygon (or sketch collection polygons)?"}),"\n",(0,s.jsx)(n.li,{children:"If it is a sketch collection, does it meet the planning objective of protecting 20% of all coral reef?"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/functions/coralReef.ts"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {\n Sketch,\n SketchCollection,\n Polygon,\n MultiPolygon,\n GeoprocessingHandler,\n getFeaturesForSketchBBoxes,\n toSketchArray,\n clipMultiMerge,\n isSketchCollection,\n clip,\n Feature,\n} from "@seasketch/geoprocessing";\nimport project from "../../project/projectClient.js";\nimport { area, featureCollection } from "@turf/turf";\nimport reefPrecalc from "../../data/precalc/reefextent.json";\n\nexport interface CoralReefResults {\n /** area of all reef extent polygons in square meters */\n totalArea: number;\n /** area of reef extent within sketch or sketch collection in square meters */\n sketchArea: number;\n childSketchAreas: {\n /** Name of the sketch */\n name: string;\n /** Area of reef extent within child sketch in square meters */\n area: number | null;\n }[];\n}\n\n/**\n * Simple geoprocessing function with custom result payload\n */\nexport async function coralReef(\n sketch:\n | Sketch\n | SketchCollection,\n): Promise {\n // Load just the reef features that intersect with the sketch bounding box\n // or in case of a sketch collection, the child sketch bounding boxes\n const ds = project.getInternalVectorDatasourceById("reefextent");\n const url = project.getDatasourceUrl(ds);\n const reefFeatures: Feature[] =\n await getFeaturesForSketchBBoxes(sketch, url);\n\n // Add analysis code\n\n // If collection, calculate area of each sketches intersection with reef\n let childSketchAreas: CoralReefResults["childSketchAreas"] = [];\n if (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => {\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n sketch,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return {\n name: sketch.properties.name,\n area: sketchReefOverlap ? area(sketchReefOverlap) : 0,\n };\n });\n }\n\n // Calculate area of overall sketch intersection with reef\n const sketchArea = (() => {\n // Figure out feature to clip\n let clipFeature: Feature | null;\n if (reefFeatures.length === 0) {\n return 0;\n } else if (isSketchCollection(sketch)) {\n // union sketches to remove overlap and avoid double count\n clipFeature = clip(sketch, "union");\n if (!clipFeature) return 0;\n } else {\n clipFeature = sketch;\n }\n //Merge reefFeatures into a single multipolygon, then intersect\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n clipFeature,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return sketchReefOverlap ? area(sketchReefOverlap) : 0;\n })();\n\n // Custom return type\n return {\n totalArea: reefPrecalc.totalAreaSqMeters,\n sketchArea: sketchArea,\n childSketchAreas,\n };\n}\n\nexport default new GeoprocessingHandler(coralReef, {\n title: "coralReef",\n description: "calculate sketch overlap with reef extent datasource",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Notice that the code imports the totalArea value you precalculated and inserts it into the result payload, avoiding the need to recalculate it each time."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import reefPrecalc from "../../data/precalc/reefextent.json";\n\nreefPrecalc.totalArea;\n'})}),"\n",(0,s.jsx)(n.p,{children:"Then it fetches only the reef features whose bounding box intersects with the sketch bounding box, or in case of a sketch collection, that intersects with each of its child sketch bounding boxes. This is more efficient than fetching the entire reef dataset, saving time and network bandwidth."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Load just the reef features that intersect with the sketch bounding box\n// or in case of a sketch collection, the child sketch bounding boxes\nconst ds = project.getInternalVectorDatasourceById("reefextent");\nconst url = project.getDatasourceUrl(ds);\nconst reefFeatures: Feature[] =\n await getFeaturesForSketchBBoxes(sketch, url);\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Next, if the sketch is a collection, it calculates how much coral reef overlaps with each individual sketch. To do this, it needs to figure out the areas where the sketches and coral reef ",(0,s.jsx)(n.code,{children:"intersect"}),". This is calculated using the ",(0,s.jsx)(n.code,{children:"clipMultiMerge"})," function. It is essential that this function is used because it merges the reefFeatures collection into a single multipolygon before intersecting it with the sketch. If you were to use the ",(0,s.jsx)(n.code,{children:"clip"})," function you would need to loop through each reef feature and clip the sketch to it."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// If collection, calculate area of each sketches intersection with reef\nlet childSketchAreas: CoralReefResults["childSketchAreas"] = [];\nif (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => {\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n sketch,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return {\n name: sketch.properties.name,\n area: sketchReefOverlap ? area(sketchReefOverlap) : 0,\n };\n });\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Finally, it calculates how much coral reef overlaps with the entire sketch/collection."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"If there is no overlap between the reef and sketch, then it simply returns zero."}),"\n",(0,s.jsxs)(n.li,{children:["If it's a sketch collection it first performs a ",(0,s.jsx)(n.code,{children:"union"})," operation that merges all of the sketches into a single Multipolygon, dissolving any overlap between the sketches so that area is not double counted."]}),"\n",(0,s.jsx)(n.li,{children:"If it's a single sketch polygon then it just calculates its area and returns it."}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Calculate area of overall sketch intersection with reef\nconst sketchArea = (() => {\n // Figure out feature to clip\n let clipFeature: Feature | null;\n if (reefFeatures.length === 0) {\n return 0;\n } else if (isSketchCollection(sketch)) {\n // union sketches to remove overlap and avoid double count\n clipFeature = clip(sketch, "union");\n if (!clipFeature) return 0;\n } else {\n clipFeature = sketch;\n }\n //Merge reefFeatures into a single multipolygon, then intersect\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n clipFeature,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return sketchReefOverlap ? area(sketchReefOverlap) : 0;\n})();\n\n// Custom return type\nreturn {\n totalArea: reefPrecalc.totalAreaSqMeters,\n sketchArea: sketchArea,\n childSketchAreas,\n};\n'})}),"\n",(0,s.jsx)(n.p,{children:"Now run tests to generate updated output for each of the sample sketches:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run test\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Confirm that the output looks as expected. It is possible none of your test sketches will overlap with any coral reef features in which case all area values will have a ",(0,s.jsx)(n.code,{children:"0"})," value."]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/output/sketchCollection1/coralReef.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "totalArea": 716100906.2570591,\n "sketchArea": 367734.86730626615,\n "childSketchAreas": [\n {\n "name": "sketchCollection1-1",\n "area": 428611581.5348215\n },\n {\n "name": "sketchCollection1-2",\n "area": 258701691.8012635\n },\n {\n "name": "sketchCollection1-3",\n "area": 599831752.2377243\n },\n {\n "name": "sketchCollection1-4",\n "area": 372585470.74404347\n },\n {\n "name": "sketchCollection1-5",\n "area": 562781719.588172\n },\n {\n "name": "sketchCollection1-6",\n "area": 528237794.83984125\n },\n {\n "name": "sketchCollection1-7",\n "area": 253970548.59694752\n },\n {\n "name": "sketchCollection1-8",\n "area": 376674659.1741572\n },\n {\n "name": "sketchCollection1-9",\n "area": 657788539.6501052\n },\n {\n "name": "sketchCollection1-10",\n "area": 712233449.0549812\n }\n ]\n}\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Now open src/components/CoralReefCard.tsx."}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Display the % of total coral reef captured within this sketch"}),"\n",(0,s.jsxs)(n.li,{children:["If it is a sketch collection","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Indicate whether the objective of protecting 20% of all coral reef has been met."}),"\n",(0,s.jsx)(n.li,{children:"Display a collapsible area with a breakdown of the area and % area of coral reef within each individual sketch in the collection."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/components/CoralReefCard.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React from "react";\nimport { Trans, useTranslation } from "react-i18next";\nimport {\n ResultsCard,\n useSketchProperties,\n HorizontalStackedBar,\n Collapse,\n Table,\n ObjectiveStatus,\n VerticalSpacer,\n} from "@seasketch/geoprocessing/client-ui";\nimport {\n percentWithEdge,\n roundDecimalFormat,\n squareMeterToKilometer,\n} from "@seasketch/geoprocessing/client-core";\n\n// Import CoralReefResults to type-check data access in ResultsCard render function\nimport { CoralReefResults } from "../functions/coralReef.js";\n\nexport const CoralReefCard = () => {\n const { t } = useTranslation();\n const [{ isCollection }] = useSketchProperties();\n const titleTrans = t("CoralReefCard title", "Coral Reef");\n return (\n <>\n \n {(data: CoralReefResults) => {\n const target = 0.2; // 20%\n const reefPerc = data.sketchArea / data.totalArea;\n const reefPercString = percentWithEdge(reefPerc);\n const targetPercString = percentWithEdge(target);\n\n const meetsObjective = reefPerc >= target;\n\n // Adjust values for chart to be in range 0-100\n const chartRows = [[[reefPerc * 100]]];\n\n const sketchTypeStr = isCollection\n ? t("sketch collection")\n : t("sketch");\n\n const meetsOrNotElement = meetsObjective ? (\n \n This {{ sketchTypeStr }} meets the objective of protecting{" "}\n {{ targetPercString }} of coral reef\n \n ) : (\n \n This {{ sketchTypeStr }} does not meet the objective of protecting{" "}\n {{ targetPercString }} of coral reef\n \n );\n\n return (\n <>\n

\n \n {{ reefPercString }} of all Micronesia coral reef is within\n this {{ sketchTypeStr }}.\n \n

\n {isCollection && (\n \n )}\n\n \n percentWithEdge(value / 100)}\n max={4}\n target={20}\n targetValueFormatter={(targetValue) => (\n \n Target {{ targetValue: percentWithEdge(targetValue / 100) }}\n \n )}\n rowConfigs={[\n {\n title: t("Total coral reef"),\n },\n ]}\n blockGroupNames={[]}\n blockGroupStyles={[{ backgroundColor: "#64c2a6" }]}\n />\n {isCollection && (\n \n \n roundDecimalFormat(squareMeterToKilometer(row.area)),\n },\n {\n Header: t("% Reef within Sketch"),\n accessor: (row: any) =>\n percentWithEdge(row.area / data.totalArea),\n },\n ]}\n />\n \n )}\n \n );\n }}\n
\n \n );\n};\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"There are multiple things worth noticing:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"squareMeterToKilometer"})," conversion helper function is used"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"percentWithEdge"})," and ",(0,s.jsx)(n.code,{children:"roundDecimalFormat"})," helper functions are used to format values to be more human readable. Will use locale settings of the users browser when formatting decimal and percent."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"HorizontalStackedBar"})," and ",(0,s.jsx)(n.code,{children:"ObjectiveStatus"})," core UI components present information in a more visually interesting way that can be reused across reports. See core ",(0,s.jsx)(n.a,{href:"/storybook",children:"storybook"})," for more examples of their use."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Now, start storybook and view the result. You will find the CoralReefCard under the ",(0,s.jsx)(n.code,{children:"Components"})," section:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run storybook\n"})}),"\n",(0,s.jsx)(n.p,{children:"When viewing a sketch example, it should display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard sketch view",src:t(8847).A+"",width:"742",height:"291"})}),"\n",(0,s.jsx)(n.p,{children:"Keep in mind your sketch polygon examples are randomly generated so your numbers will vary from the ones shown."}),"\n",(0,s.jsx)(n.p,{children:'And when viewing a sketch collection example, it should display the additional "Show By Sketch" list:'}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard collection view",src:t(97287).A+"",width:"748",height:"928"})}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report",children:"Add to Tab Report"}),"\n",(0,s.jsx)(n.p,{children:"Now add the CoralReefCard to a new page in your top-level TabReport."}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and replace the code with the following:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React, { useState } from "react";\nimport { useTranslation } from "react-i18next";\nimport {\n SegmentControl,\n ReportPage,\n SketchAttributesCard,\n} from "@seasketch/geoprocessing/client-ui";\nimport Translator from "../components/TranslatorAsync.js";\nimport { SimpleCard } from "../components/SimpleCard.js";\nimport { CoralReefCard } from "../components/CoralReefCard.js";\n\nconst BaseReport = () => {\n const { t } = useTranslation();\n const segments = [\n { id: "OVERVIEW", label: t("Overview") },\n { id: "BIOLOGICAL", label: t("Biological") },\n ];\n const [tab, setTab] = useState < string > "OVERVIEW";\n\n return (\n <>\n
\n setTab(segment)}\n segments={segments}\n />\n
\n \n \n \n );\n};\n\n// Named export loaded by storybook\nexport const TabReport = () => {\n return (\n \n \n \n );\n};\n\n// Default export lazy-loaded by production ReportApp\nexport default TabReport;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard add to page",src:t(62848).A+"",width:"1453",height:"823"})}),"\n",(0,s.jsx)(n.p,{children:"You should be able to click the tabs and switch between report pages."}),"\n",(0,s.jsx)(n.h2,{id:"benthic-habitat-report",children:"Benthic Habitat Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a report summarizing sketch overlap with 3 classes of rocky substrate (rock, rubble, sand) in the benthic zone (seabottom). Here is an image of it displayed in QGIS within the Micronesian EEZ boundary. Similar to the coral reefs, notice that these 3 types of rocky seabottom are mostly in shallower water near the islands and atolls."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Benthic habitat map",src:t(13065).A+"",width:"1345",height:"688"})}),"\n",(0,s.jsx)(n.h3,{id:"import-data-1",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"First, import the data."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of data?\nVector\n? Enter path to src file (with filename)\ndata/src/benthic-rock.fgb\n? Select layer to import\nbenthic-rock\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nbenthic-rock\n? Should multi-part geometries be split into single-part geometries?\nYes\n? (Optional) additional formats to create (besides fgb)\n[Press Enter to skip]\n? Select feature properties that you want to group metrics by\nclass\n? Select additional feature properties to keep in final datasource\n[Press Enter to skip]\n\nAdding benthic-rock record in project/datasources.json file\n"})}),"\n",(0,s.jsx)(n.h3,{id:"precalc-data-1",children:"Precalc Data"}),"\n",(0,s.jsxs)(n.p,{children:["Before you can use your benthic report, you need to precalculate the area of your benthic polygons. Rather than writing your own script for this, as was done for coral reefs, the ",(0,s.jsx)(n.code,{children:"precalc:data"})," command is available that will inspect your vector datasource and precalculate basic summary metrics (total feature area, total feature count, etc). Let's look at the datasource record generated for our benthic-rock datasource to understand what precalc will do."]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"project/datasources.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'{\n "src": "data/src/benthic-rock.fgb",\n "layerName": "benthic-rock",\n "geo_type": "vector",\n "datasourceId": "benthic-rock",\n "formats": [\n "fgb"\n ],\n "classKeys": [\n "class"\n ],\n "created": "2024-11-28T05:58:26.284Z",\n "lastUpdated": "2024-11-28T05:58:26.284Z",\n "propertiesToKeep": [\n "class"\n ],\n "explodeMulti": true,\n "precalc": true\n}\n'})})]}),"\n",(0,s.jsxs)(n.p,{children:["You'll notice that the ",(0,s.jsx)(n.code,{children:"precalc"})," property is set to true. That means that it is made available for precalculation. You can disable precalculation for any datasource you want at any time by setting it to ",(0,s.jsx)(n.code,{children:"false"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You'll also notice that the ",(0,s.jsx)(n.code,{children:"class"})," attribute is configured under ",(0,s.jsx)(n.code,{children:"classKeys"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"classKeys": [\n "class"\n],\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This is because when importing your datasource, when asked to select feature properties that you want to group metrics by, you selected ",(0,s.jsx)(n.code,{children:"class"}),". If present, the precalc command will use this to precalculate metrics by each unique value present in the dataset for the ",(0,s.jsx)(n.code,{children:"class"})," attribute. If not present, you can simply add it now and save your file."]}),"\n",(0,s.jsx)(n.p,{children:"You're now ready to precalculate your metrics."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run precalc:data\n\n? Do you want to precalculate only a subset?\nNo, just precalculate everything (may take a while)\n\n...\n\n2 datasource/geography combinations precalculated successfully\n2 datasource/geography combinations skipped due to precalc disabled\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You should now have precalculated ",(0,s.jsx)(n.code,{children:"area"})," and ",(0,s.jsx)(n.code,{children:"count"})," metrics for both reefextent and benthic-rock datasources. Let's look closer at the output."]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"project/precalc.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'[\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rock",\n "sketchId": null,\n "groupId": null,\n "value": 16604057.106034255\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rubble",\n "sketchId": null,\n "groupId": null,\n "value": 14568314.003883593\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Sand",\n "sketchId": null,\n "groupId": null,\n "value": 41378302.21403051\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-total",\n "sketchId": null,\n "groupId": null,\n "value": 72550673.32394843\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "reefextent-total",\n "sketchId": null,\n "groupId": null,\n "value": 716231422.607066\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-Rock",\n "sketchId": null,\n "groupId": null,\n "value": 2712\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-Rubble",\n "sketchId": null,\n "groupId": null,\n "value": 2002\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-Sand",\n "sketchId": null,\n "groupId": null,\n "value": 2658\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-total",\n "sketchId": null,\n "groupId": null,\n "value": 7372\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "reefextent-total",\n "sketchId": null,\n "groupId": null,\n "value": 14406\n }\n]\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Within this array of precalc metric records you will see four that represent the total area of all benthic-rock polygons and the total area for each of the 3 benthic rock classes:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-total",\n "sketchId": null,\n "groupId": null,\n "value": 72550673.32394843\n},\n{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rock",\n "sketchId": null,\n "groupId": null,\n "value": 16604057.106034255\n},\n{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rubble",\n "sketchId": null,\n "groupId": null,\n "value": 14568314.003883593\n},\n{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Sand",\n "sketchId": null,\n "groupId": null,\n "value": 41378302.21403051\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"These will get loaded and used by the BenthicReefCard as the denominator value when calculating percent sketch overlap."}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["If at any point the process of using ",(0,s.jsx)(n.code,{children:"import:data"}),", ",(0,s.jsx)(n.code,{children:"precalc:data"})," or the ",(0,s.jsx)(n.code,{children:"projectClient"})," don't meet your needs, you are welcome to create your own separate workflow. As long as datasources get to the ",(0,s.jsx)(n.code,{children:"data/dist"})," directory for publishing, in the format (fgb, cog) and projection required (EPSG 4326 for vector, EPSG 6933 for raster) you can create your own solution."]})}),"\n",(0,s.jsx)(n.h3,{id:"world-geography",children:"World Geography"}),"\n",(0,s.jsxs)(n.p,{children:["You might have noticed in the precalculated metrics that they are assigned a geographyId of ",(0,s.jsx)(n.code,{children:"world"}),". ",(0,s.jsx)(n.code,{children:"Geographies"})," are a higher level feature of the framework that define polygon boundaries that serve a specfic purpose in your project. The main use case is to define planning boundaries for your project, if you have them."]}),"\n",(0,s.jsxs)(n.p,{children:["The default Geography for a new project is the ",(0,s.jsx)(n.code,{children:"world"})," geography, which establishes the entire world as your planning boundary. This is sufficient for your needs until you have a more specific planning boundary that you want to work with. For example you can clip your sketches and your data to a geography in order to report metrics for a specific geography. Since your data is already pre-clipped to the planning area, and there is only one planning area, you don't need to do anything more with this feature. You can just leave it to use the ",(0,s.jsx)(n.code,{children:"world"})," geography."]}),"\n",(0,s.jsxs)(n.p,{children:["Geographies are defined in ",(0,s.jsx)(n.code,{children:"project/geographies.json"}),". To learn more visit the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/concepts#geographies",children:"advanced concepts"})," page."]}),"\n",(0,s.jsx)(n.h3,{id:"add-metric-group",children:"Add Metric Group"}),"\n",(0,s.jsxs)(n.p,{children:["A metric group is a higher-level entity that defines a metric to be measured, for one or more classes of data. ",(0,s.jsx)(n.code,{children:"MetricGroup"})," ",(0,s.jsx)(n.strong,{children:"records"})," can defined in ",(0,s.jsx)(n.code,{children:"project/metrics.json"})," and accessed using the project client in your geoprocessing functions and reports."]}),"\n",(0,s.jsxs)(n.p,{children:["Let's create a metric group by first looking at the benthic dataset. It represents where multiple classes of benthic habitat are present - sand, rock, rubble. Each polygon is assigned with a single habitat type using the ",(0,s.jsx)(n.code,{children:"class"})," attribute and given a value of ",(0,s.jsx)(n.code,{children:"Sand"}),", ",(0,s.jsx)(n.code,{children:"Rock"}),", or ",(0,s.jsx)(n.code,{children:"Rubble"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Add the following metric group object to ",(0,s.jsx)(n.code,{children:"project/metrics.json"})," and save the file."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metricId": "benthicHabitat",\n "classKey": "class",\n "datasourceId": "benthic-rock",\n "classes": [\n {\n "classId": "Sand",\n "display": "Sand"\n },\n {\n "classId": "Rock",\n "display": "Rock"\n },\n {\n "classId": "Rubble",\n "display": "Rubble"\n }\n ]\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This defines a ",(0,s.jsx)(n.code,{children:"benthicHabitat"})," metric that sources data from the ",(0,s.jsx)(n.code,{children:"benthic"})," datasource. The ",(0,s.jsx)(n.code,{children:"classKey"})," indicates this datasource has an attribute named ",(0,s.jsx)(n.code,{children:"class"})," used to identify which data class each polygon is a member of. 3 data classes are defined with a ",(0,s.jsx)(n.code,{children:"classId"})," serving as the unique identifier for the data class, and it also matches the value used in the data at the ",(0,s.jsx)(n.code,{children:"classKey"})," attribute."]}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about metric groups, visit the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/concepts#metric-group",children:"advanced concepts"})," page."]}),"\n",(0,s.jsx)(n.h3,{id:"create-report-1",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a report that uses your metric group. Run the following command and answer the questions:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run create:report\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of report to create\nVector overlap report - calculates sketch overlap with vector datasources\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with benthic habitat\n? Select the metric group to report on\nbenthicHabitat\n\n\u2714 Created benthicHabitat report\n\u2714 Registered report assets in project/geoprocessing.json\n\nGeoprocessing function: src/functions/benthicHabitat.ts\nSmoke test: src/functions/benthicHabitatSmoke.test.ts\nReport component: src/components/BenthicHabitatCard.tsx\nStory generator: src/components/BenthicHabitatCard.example-stories.ts\n\nNext Steps:\n * 'npm test' to run smoke tests against your new geoprocessing function\n * 'npm run storybook' to view your new report with smoke test output\n * Add to a top-level report client or page when ready\n"})}),"\n",(0,s.jsx)(n.p,{children:"You should now have a geoprocessing function and card component ready to go that will iterate through your data classes and calculate/report area overlap with your sketch."}),"\n",(0,s.jsx)(n.h3,{id:"test-new-example-sketch",children:"Test New Example Sketch"}),"\n",(0,s.jsxs)(n.p,{children:["Now run ",(0,s.jsx)(n.code,{children:"npm run test"})," again look at the new smoke test output for your geoprocessing function in ",(0,s.jsx)(n.code,{children:"examples/output"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"It's very likely that none of your random sketchs overlapped with any benthic polygons and all display zero. Add the following example sketch that we know will overlap."}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/sketches/sketch2.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "type": "Feature",\n "properties": {\n "id": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "isCollection": false,\n "userAttributes": [\n {\n "label": "Type",\n "fieldType": "ChoiceField",\n "exportId": "TYPE",\n "value": "sketch"\n },\n {\n "label": "Notes",\n "value": "NOTES",\n "fieldType": "TextArea"\n }\n ],\n "sketchClassId": "3ac026ad-c3eb-471a-b6ad-58782aa5e949",\n "createdAt": "2024-11-26T02:48:33.985Z",\n "updatedAt": "2024-11-26T02:48:33.985Z",\n "name": "sketch2"\n },\n "geometry": {\n "type": "Polygon",\n "coordinates": [\n [\n [151.31665625673213, 7.749571426060996],\n [151.31665625673213, 5.925462431466443],\n [153.9861009666032, 5.925462431466443],\n [153.9861009666032, 7.749571426060996],\n [151.31665625673213, 7.749571426060996]\n ]\n ]\n },\n "id": "78f6e916-20f0-471e-a15e-6d632650cf68"\n}\n'})})]}),"\n",(0,s.jsxs)(n.p,{children:["Now ",(0,s.jsx)(n.code,{children:"npm run test"})," and you should now see non-zero output for each benthic class for the sketch2 example:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/output/sketch2/benthicHabitat.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metrics": [\n {\n "geographyId": "world",\n "metricId": "benthicHabitat",\n "classId": "Rock",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": null,\n "value": 11210186.968081,\n "extra": {\n "sketchName": "sketch2"\n }\n },\n {\n "geographyId": "world",\n "metricId": "benthicHabitat",\n "classId": "Rubble",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": null,\n "value": 11210186.968081,\n "extra": {\n "sketchName": "sketch2"\n }\n },\n {\n "geographyId": "world",\n "metricId": "benthicHabitat",\n "classId": "Sand",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": null,\n "value": 11210186.968081,\n "extra": {\n "sketchName": "sketch2"\n }\n }\n ]\n}\n'})})]}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report-1",children:"Add To Tab Report"}),"\n",(0,s.jsxs)(n.p,{children:["Next, add BenthicHabitatCard to a new ",(0,s.jsx)(n.strong,{children:"Habitat"})," page in TabReport. Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and replace the code with the following:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React, { useState } from "react";\nimport { useTranslation } from "react-i18next";\nimport {\n SegmentControl,\n ReportPage,\n SketchAttributesCard,\n} from "@seasketch/geoprocessing/client-ui";\nimport Translator from "../components/TranslatorAsync.js";\nimport { SimpleCard } from "../components/SimpleCard.js";\nimport { CoralReefCard } from "../components/CoralReefCard.js";\nimport { BenthicHabitatCard } from "../components/BenthicHabitatCard.js";\n\nconst BaseReport = () => {\n const { t } = useTranslation();\n const segments = [\n { id: "OVERVIEW", label: t("Overview") },\n { id: "BIOLOGICAL", label: t("Biological") },\n { id: "HABITAT", label: t("Habitat") },\n ];\n const [tab, setTab] = useState < string > "OVERVIEW";\n\n return (\n <>\n
\n setTab(segment)}\n segments={segments}\n />\n
\n \n \n \n \n );\n};\n\n// Named export loaded by storybook\nexport const TabReport = () => {\n return (\n \n \n \n );\n};\n\n// Default export lazy-loaded by production ReportApp\nexport default TabReport;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard add to page",src:t(2187).A+"",width:"1464",height:"1299"})}),"\n",(0,s.jsx)(n.h2,{id:"seamount-report",children:"Seamount Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a report summarizing sketch overlap with areas that are within 40k kilometers of a seamount, which is an underwater mountain that rises at least 1,000 meters above the surrounding ocean. Here is an image of these areas displayed in QGIS within the Micronesian EEZ boundary."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Seamount",src:t(37720).A+"",width:"1080",height:"607"})}),"\n",(0,s.jsx)(n.p,{children:"The seamount dataset is in a raster format. It is a binary raster such that each raster cell has a value of zero or one. Rasters are like digital images, in that each pixel or cell represents a specific rectangular area of the world and gives it a value. This particular dataset is a binary raster. Each cell has a value of zero or one. A one value indicates that the cell is within 40 kilemeters of a seamount, a zero value indicates it is not."}),"\n",(0,s.jsx)(n.h3,{id:"import-data-2",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"Next you will import this seamount raster:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/seamounts_40km.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nseamounts_40km\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n\nAdding seamounts_40km record in project/datasources.json file\n"})}),"\n",(0,s.jsx)(n.h3,{id:"precalc-data-2",children:"Precalc Data"}),"\n",(0,s.jsxs)(n.p,{children:["Now, precalculating metrics for a cloud-optimized geotiff raster is a little more complicated than for a flatgeobuf. For this reason, we want to make use of the built-in ",(0,s.jsx)(n.code,{children:"precalc"})," feature. Run the precalc command as follow:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run precalc:data\n\n? Do you want to precalculate only a subset?\nYes, by datasource\n\n? Which datasources do you want to precalculate? (will precalculate for all geographies)\nLet me choose\n\n? What datasources would you like to precalculate? (select as many as you want)\nseamounts_40km - raster\n\nPrecalculating datasource seamounts_40km for geography world\n1 datasource/geography combinations precalculated successfully\n"})}),"\n",(0,s.jsx)(n.p,{children:"Now look at project/precalc.json. You should see 4 new precalculated metrics for octocorals:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"valid"})," - count of all raster cells with value (not nodata cells)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"count"})," - count of all cells in the raster, both valid and invalid (nodata)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"sum"})," - sum of value of all valid cell values in raster"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"area"})," - area of valid cells in raster in square meters"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:' {\n "geographyId": "world",\n "metricId": "area",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 400949272332.4638\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 18748\n },\n {\n "geographyId": "world",\n "metricId": "sum",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 1365\n },\n {\n "geographyId": "world",\n "metricId": "valid",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 1365\n }\n'})}),"\n",(0,s.jsx)(n.p,{children:"The area calculation is made possible by the fact that the raster is in an equal area projection, making all raster cells a consistent size. Area is calculated as:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"area = raster cell width in meters x cell height in meters x number of valid cells"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Notice that the precalculated ",(0,s.jsx)(n.code,{children:"sum"})," and ",(0,s.jsx)(n.code,{children:"valid"})," values are the same at ",(0,s.jsx)(n.code,{children:"1365"}),". That is because the valid cells all have a value of 1 and the sum of the values in valid cells is the same as the count of valid cells."]}),"\n",(0,s.jsx)(n.h3,{id:"add-objective",children:"Add Objective"}),"\n",(0,s.jsxs)(n.p,{children:["You will also use the built-in framework support for objectives. It allows you to configure a target value and measure progress toward it in a report. Open ",(0,s.jsx)(n.code,{children:"project/objectives.json"})," and add the following objective:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'[\n {\n "objectiveId": "seamounts",\n "shortDesc": "Seamounts 30%",\n "target": 0.3,\n "countsToward": {}\n }\n]\n'})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"countsToward"})," property isn't necessary for this sample project but it allows you to indicate which of one or more categories count towards meeting the target. For example if you allow a user to assign a protection level to their sketch, you can allow only the two highest levels of protection to count toward meeting the target."]}),"\n",(0,s.jsx)(n.p,{children:"Example (do not add):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "countsToward": {\n "Full Protection": "yes",\n "High Protection": "yes",\n "Low Protection": "no"\n }\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"add-metric-group-1",children:"Add Metric Group"}),"\n",(0,s.jsx)(n.p,{children:"The last bit of preparation is you will create a metric group. This will allow you to easily access your precalc metrics and your objective in your report card."}),"\n",(0,s.jsxs)(n.p,{children:["Create a seamount metric group that uses the objective in ",(0,s.jsx)(n.code,{children:"project/metrics.json"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metricId": "seamounts",\n "datasourceId": "seamounts_40km",\n "classes": [\n {\n "classId": "seamounts",\n "display": "Seamounts",\n "objectiveId": "seamounts"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"create-report-2",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"Now create a blank seamount report"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"npm run create:report\n\n? Type of report to create\nBlank report - empty report ready to build from scratch\n\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with seamount raster\n\n? Title for this report, in camelCase\nseamounts\n\n\u2714 Created seamounts report\n\u2714 Registered report assets in project/geoprocessing.json\n\nGeoprocessing function: src/functions/seamounts.ts\nSmoke test: src/functions/seamountsSmoke.test.ts\nReport component: src/components/SeamountsCard.tsx\nStory generator: src/components/SeamountsCard.example-stories.ts\n\nNext Steps:\n * 'npm test' to run smoke tests against your new geoprocessing function\n * 'npm run storybook' to view your new report with smoke test output\n * Add to a top-level report client or page when ready\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This creates both a geoprocessing function and report card, and registers them in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/functions/seamounts.ts"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code answer the following questions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"What percentage of area within 40 kilometers of a seamount is within the current sketch polygon (or sketch collection polygons)?"}),"\n",(0,s.jsx)(n.li,{children:"If it is a sketch collection, does it meet the planning objective of protecting 30% of all area within 40 kilometers of a seamount?"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/functions/seamounts.ts"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {\n Sketch,\n SketchCollection,\n Polygon,\n MultiPolygon,\n GeoprocessingHandler,\n DefaultExtraParams,\n loadCog,\n rasterStats,\n toSketchArray,\n StatsObject,\n} from "@seasketch/geoprocessing";\nimport project from "../../project/projectClient.js";\n\nexport interface SeamountResult {\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n childSketchStats: {\n /** Name of the sketch */\n name: string;\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n }[];\n}\n\n/**\n * seamounts for use with create:report command\n */\nexport async function seamounts(\n sketch:\n | Sketch\n | SketchCollection,\n extraParams: DefaultExtraParams = {},\n): Promise {\n const metricGroup = project.getMetricGroup("seamounts");\n const ds = project.getMetricGroupDatasource(metricGroup);\n const url = project.getDatasourceUrl(ds);\n const raster = await loadCog(url);\n\n // Add analysis code\n const stats = await rasterStats(raster, {\n feature: sketch,\n stats: ["sum"],\n });\n\n let childSketchStats: SeamountResult["childSketchStats"] = [];\n if (sketch.properties.isCollection) {\n childSketchStats = await Promise.all(\n toSketchArray(sketch).map(async (childSketch) => {\n const childStats = await rasterStats(raster, {\n feature: childSketch,\n stats: ["sum"],\n });\n return {\n name: childSketch.properties.name,\n stats: childStats,\n };\n }),\n );\n }\n\n // Custom return type\n return {\n stats,\n childSketchStats,\n };\n}\n\nexport default new GeoprocessingHandler(seamounts, {\n title: "seamounts",\n description: "Calculate sketch overlap with seamount data",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Notice the more sophisticated result payload. It's designed to return one or more raster stats for the top-level sketch, and one or more child sketch stats if it's a sketch collection. This gives the structure some room to grow if you want to produce multiple raster stats for each sketch and use them in this report."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export interface SeamountResult {\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n childSketchStats: {\n /** Name of the sketch */\n name: string;\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n }[];\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:"Then it fetches the metadata for the seamounts raster, ready to read data from it."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'const metricGroup = project.getMetricGroup("seamounts");\nconst ds = project.getMetricGroupDatasource(metricGroup);\nconst url = project.getDatasourceUrl(ds);\nconst raster = await loadCog(url);\n'})}),"\n",(0,s.jsx)(n.p,{children:"Now let's look at the analysis code. If it's a sketch collection, sum the value of all rasters cells that overlap with each child sketch."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// If sketch is collection, sum the value of raster cells that overlap with each child sketch\nlet childSketchStats: SeamountResult["childSketchStats"] = [];\nif (sketch.properties.isCollection) {\n childSketchStats = await Promise.all(\n toSketchArray(sketch).map(async (childSketch) => {\n const childStats = await rasterStats(raster, {\n feature: childSketch,\n stats: ["sum"],\n });\n return {\n name: childSketch.properties.name,\n stats: childStats,\n };\n }),\n );\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Next, sum the value of raster cells that overlap the entire top-level sketch or sketch collection and return the final result payload."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Calculate overall sketch area\nconst stats = await rasterStats(raster, {\n feature: sketch,\n stats: ["sum"],\n});\n\n// Custom return type\nreturn {\n stats,\n childSketchStats,\n};\n'})}),"\n",(0,s.jsx)(n.p,{children:"If this is a sketch collection, you might notice that an optimization would be to sum the value of all the child sketches to get the overall sum for the whole collection. That is true, if your sketches are guaranteed not to overlap. In practice, sketches often can and do overlap in a planning process. The planning process may even allow it such as areas of higher protection within areas of lower protection. This is an optimization left to you."}),"\n",(0,s.jsx)(n.p,{children:"Now run tests"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm test\n"})}),"\n",(0,s.jsx)(n.p,{children:"Confirm that the output looks as expected."}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/output/sketchCollection1/seamounts.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "stats": [\n {\n "sum": 5\n }\n ],\n "childSketchStats": [\n {\n "name": "sketchCollection1-1",\n "stats": [\n {\n "sum": 1\n }\n ]\n },\n {\n "name": "sketchCollection1-2",\n "stats": [\n {\n "sum": 1\n }\n ]\n },\n {\n "name": "sketchCollection1-3",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-4",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-5",\n "stats": [\n {\n "sum": 1\n }\n ]\n },\n {\n "name": "sketchCollection1-6",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-7",\n "stats": [\n {\n "sum": 2\n }\n ]\n },\n {\n "name": "sketchCollection1-8",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-9",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-10",\n "stats": [\n {\n "sum": 0\n }\n ]\n }\n ]\n}\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Now, open src/components/SeamountsCard.tsx."}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Display the % of total area within 40 kilometers of a seamount captured within this sketch"}),"\n",(0,s.jsxs)(n.li,{children:["If it is a sketch collection","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Indicate whether the objective of protecting 30% of all area within 40 kilometers of a seamount has been met."}),"\n",(0,s.jsx)(n.li,{children:"Display a collapsible area with a breakdown of the area and % area of seamount within each individual sketch in the collection."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/components/SeamountCard.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React from "react";\nimport { Trans, useTranslation } from "react-i18next";\nimport {\n Collapse,\n HorizontalStackedBar,\n ObjectiveStatus,\n ResultsCard,\n Table,\n useSketchProperties,\n VerticalSpacer,\n} from "@seasketch/geoprocessing/client-ui";\nimport {\n percentWithEdge,\n roundDecimalFormat,\n squareMeterToKilometer,\n} from "@seasketch/geoprocessing/client-core";\nimport project from "../../project/projectClient.js";\nimport { SeamountResult } from "../functions/seamounts.js";\n\nexport const SeamountsCard = () => {\n const { t } = useTranslation();\n const [{ isCollection }] = useSketchProperties();\n const titleTrans = t("SeamountCard title", "SeamountCard");\n\n // Get precalc total sum\n const curGeography = project.getGeographyById("world", {\n fallbackGroup: "default-boundary",\n });\n const metricGroup = project.getMetricGroup("seamounts", t);\n const precalcMetrics = project.getPrecalcMetrics(\n metricGroup,\n "sum",\n curGeography.geographyId,\n );\n const sumTotal = precalcMetrics[0].value;\n\n // Get objective target\n const target = project.getObjectiveById("seamounts").target;\n\n return (\n <>\n \n {(data: SeamountResult) => {\n console.log("precalc", precalcMetrics);\n console.log("data", data);\n\n const sumPerc = data.stats[0].sum! / sumTotal;\n const sumPercString = percentWithEdge(sumPerc);\n const targetPercString = percentWithEdge(target);\n\n const meetsObjective = sumPerc >= target;\n\n // Adjust values for chart to be in range 0-100\n const chartRows = [[[sumPerc * 100]]];\n\n const sketchStr = isCollection ? t("sketch collection") : t("sketch");\n\n const meetsOrNotElement = meetsObjective ? (\n \n This {{ sketchStr }} meets the objective of protecting{" "}\n {{ targetPercString }} of area within 40 km of a seamount.\n \n ) : (\n \n This {{ sketchStr }} does not meet the objective of protecting{" "}\n {{ targetPercString }} of area within 40 km of a seamount.\n \n );\n\n return (\n <>\n

\n \n {{ sumPercString }} of all areas within 40 kilometers of a\n seamount is within this {{ sketchStr }}.\n \n

\n {isCollection && (\n \n )}\n\n \n percentWithEdge(value / 100)}\n max={4}\n target={20}\n targetValueFormatter={(targetValue) => (\n \n Target {{ targetValue: percentWithEdge(targetValue / 100) }}\n \n )}\n rowConfigs={[\n {\n title: t("Total seamounts"),\n },\n ]}\n blockGroupNames={[]}\n blockGroupStyles={[{ backgroundColor: "#64c2a6" }]}\n />\n {isCollection && (\n \n \n roundDecimalFormat(\n squareMeterToKilometer(row.stats[0].sum),\n ),\n },\n {\n Header: t("% Seamount within Sketch"),\n accessor: (row: any) =>\n percentWithEdge(row.stats[0].sum / sumTotal),\n },\n ]}\n />\n \n )}\n \n );\n }}\n
\n \n );\n};\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"There are multiple things worth noticing:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"the project client is getting more use, to access precalc metrics and the objective target."}),"\n",(0,s.jsx)(n.li,{children:"the code to access the result values is more complex than for the reef report, because the structure of the result data is more complex."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report-2",children:"Add To Tab Report"}),"\n",(0,s.jsxs)(n.p,{children:["Next, add SeamountsCard to the ",(0,s.jsx)(n.strong,{children:"Habitat"})," page in TabReport. Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and insert the following at the appropriate places:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'import { SeamountsCard } from "../components/SeamountsCard.js";\n\n;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Seamount add to page",src:t(38223).A+"",width:"1474",height:"1126"})}),"\n",(0,s.jsx)(n.h3,{id:"data-complexity",children:"Data Complexity"}),"\n",(0,s.jsx)(n.p,{children:"Results can get even more complex than the last report. Imagine if a report needed to calculate a metric with 10 different classes of data. And each sketch can be assigned to 1 of 4 different protection levels. The planning process is also split out into 3 different subregions. Now imagine you need to calculate metrics for every combination of data class, protection level, and subregion. How would you design the structure of your result to accommodate the data? How would you do it in a way that is flexible and reusable so that components of the framework can build on it?"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"Metric"})," data type is designed to accommodate this type of multi-dimensional data. You see a glimpse of it in the precalc output, and in the Coral Reef report. Each ",(0,s.jsx)(n.code,{children:"Metric"})," object represents a single measurement/value for one or more dimensions of data. A simple array of these Metric objects can represent your entire result payload."]}),"\n",(0,s.jsxs)(n.p,{children:["Example of a single Metric ",(0,s.jsx)(n.code,{children:"coralspecies"}),", that measures a sketches overlap with data class ",(0,s.jsx)(n.code,{children:"blackcoral"}),", in ",(0,s.jsx)(n.code,{children:"subregion 1"}),", where the sketch is assigned ",(0,s.jsx)(n.code,{children:"full protection"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "geographyId": "subregion1",\n "metricId": "coralspecies",\n "classId": "blackcoral",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": "full_protection",\n "value": 3,\n "extra": {\n "sketchName": "sketch2"\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Multiple pieces of this framework know how to work with ",(0,s.jsx)(n.code,{children:"Metrics"})," including:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"precalc:data"})}),"\n",(0,s.jsxs)(n.li,{children:["high-level spatial analysis functions like ",(0,s.jsx)(n.code,{children:"rasterMetrics"})," and ",(0,s.jsx)(n.code,{children:"overlapFeatures"})]}),"\n",(0,s.jsxs)(n.li,{children:["UI components like ",(0,s.jsx)(n.code,{children:"ClassTable"})," and ",(0,s.jsx)(n.code,{children:"SketchClassTable"})]}),"\n",(0,s.jsxs)(n.li,{children:["helper functions like ",(0,s.jsx)(n.code,{children:"firstMatchingMetric"}),", ",(0,s.jsx)(n.code,{children:"toPercentMetric"})," and ",(0,s.jsx)(n.code,{children:"sortMetrics"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"coral-species-report",children:"Coral Species Report"}),"\n",(0,s.jsx)(n.p,{children:"This last report will calculate sketch overlap with 3 difference species of coral."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"3 corals",src:t(88318).A+"",width:"1126",height:"600"})}),"\n",(0,s.jsx)(n.h3,{id:"import-data-3",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"First, we'll import the datasets. There are three binary rasters, each has cells with a value of zero or one. Where there is a one value, the species is predicted to be present."}),"\n",(0,s.jsx)(n.p,{children:"Import the datasets as follow:"}),"\n",(0,s.jsx)(n.p,{children:"Black Coral:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/blackcoral.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nblackcoral\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n"})}),"\n",(0,s.jsx)(n.p,{children:"Cold Water Coral:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/coldwatercoral.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\ncoldwatercoral\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n"})}),"\n",(0,s.jsx)(n.p,{children:"Octocoral:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/octocoral.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\noctocoral\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n"})}),"\n",(0,s.jsx)(n.h3,{id:"precalc",children:"Precalc"}),"\n",(0,s.jsx)(n.p,{children:"Now precalculate metrics for the raster."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"npm run precalc:data\n\n? Do you want to precalculate only a subset?\nYes, by datasource\n\n? Which datasources do you want to precalculate? (will precalculate for all geographies)\nLet me choose\n\n? What datasources would you like to precalculate? (select as many as you want)\nblackcoral - raster\ncoldwatercoral - raster\noctocoral - raster\n\n3 datasource/geography combinations precalculated successfully\n"})}),"\n",(0,s.jsx)(n.h3,{id:"add-metric-group-2",children:"Add Metric Group"}),"\n",(0,s.jsxs)(n.p,{children:["Now define a metric group in ",(0,s.jsx)(n.code,{children:"project/metrics.json"})," consisting of three classes, one for each type of coral, each pointing to the appropriate datasource at the class level:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metricId": "coralspecies",\n "classes": [\n {\n "datasourceId": "blackcoral",\n "classId": "blackcoral",\n "display": "Black Coral",\n "objectiveId": "blackcoral"\n },\n {\n "datasourceId": "coldwatercoral",\n "classId": "coldwatercoral",\n "display": "Cold Water Corals",\n "objectiveId": "coldwatercoral"\n },\n {\n "datasourceId": "octocoral",\n "classId": "Octocoral",\n "display": "Octocoral",\n "objectiveId": "octocoral"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"add-objective-1",children:"Add Objective"}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"project/objectives.json"})," and add an objective for each data class:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:' {\n "objectiveId": "blackcoral",\n "shortDesc": "Black Coral 15%",\n "target": 0.15,\n "countsToward": {}\n },\n {\n "objectiveId": "coldwatercoral",\n "shortDesc": "Cold Water Coral 25%",\n "target": 0.25,\n "countsToward": {}\n },\n {\n "objectiveId": "octocoral",\n "shortDesc": "Octocoral 35%",\n "target": 0.35,\n "countsToward": {}\n }\n'})}),"\n",(0,s.jsx)(n.h3,{id:"create-report-3",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"Now create the report:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"npm run create:report\n\n? Type of report to create\nRaster overlap report - calculates sketch overlap with raster datasources\n\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with coral species\n\n? Select the metric group to report on\ncoralspecies\n\n? Type of raster data\nQuantitative - Continuous variable across the raster\n\n? Statistic to calculate\nsum - sum of value of valid cells overlapping with sketch\n\n\u2714 Created coralspecies report\n\u2714 Registered report assets in project/geoprocessing.json\n"})}),"\n",(0,s.jsx)(n.p,{children:"Then run smoke tests:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run test\n"})}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report-3",children:"Add To Tab Report"}),"\n",(0,s.jsxs)(n.p,{children:["Next, add CoralspeciesCard to the ",(0,s.jsx)(n.strong,{children:"Biological"})," page in TabReport. Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and insert the following at the appropriate places:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'import { CoralspeciesCard } from "../components/CoralspeciesCard.js";\n\n;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard add to page",src:t(16365).A+"",width:"1459",height:"1041"})}),"\n",(0,s.jsx)(n.h3,{id:"language-translation-1",children:"Language Translation"}),"\n",(0,s.jsx)(n.p,{children:"To support more languages than just English, start with extracting all of the latest strings from your reports:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run extract:translation\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You will want to then look at the git changes produced in ",(0,s.jsx)(n.code,{children:"src/i18n/lang/en/translation.json"})," and make adjustments to your reports until the extract strings look right."]}),"\n",(0,s.jsx)(n.p,{children:"To learn more visit the\n[LINK TO TRANSLATION DOC]"}),"\n",(0,s.jsx)(n.h2,{id:"create-github-project",children:"Create Github Project"}),"\n",(0,s.jsxs)(n.p,{children:["At this point, you can push your code from your local git repository to a remote repository on Github. First, ",(0,s.jsx)(n.a,{href:"https://github.com/new",children:"create a remote Github repository"})," called ",(0,s.jsx)(n.code,{children:"fsm-reports-test"}),". Leave it empty, do not choose to initialize with a template, README, gitignore, or LICENSE."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git remote add origin https://github.com/PUT_YOUR_GITHUB_ORG_OR_USERNAME_HERE/fsm-reports-test.git\ngit push -u origin main\n"})}),"\n",(0,s.jsx)(n.p,{children:"You should see your files successfuly pushed to Github."}),"\n",(0,s.jsx)(n.p,{children:"It may ask you if it can use the Github extension to sign you in using Github. It will open a browser tab and communicate with the Github website. If you are already logged in there, then it should be done quickly, otherwise it may have you login to Github."}),"\n",(0,s.jsx)(n.h2,{id:"whats-next",children:"What's Next"}),"\n",(0,s.jsx)(n.p,{children:"You've now completed the sample tutorial. Next steps include:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Further customize these reports to suit your needs. Look at the storybook ",(0,s.jsx)(n.a,{href:"/storybook",children:"component libary"})," to see what is available."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/newproject",children:"Create a new project"}),", deploy it to a production environment, publish your data, and integrate your reports with SeaSketch."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/existingproject",children:"Setup an existing project"}),", and re-deploy it."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},16365:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/3-coral-species-add-page-da3d51726173469ff243233b7618ef3a.jpg"},88318:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/3-corals-map-07fe79be9d94f5eb8383930271dbed3c.jpg"},13065:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/benthic-habitat-map-0fb7d81be6181cf1ae11e0ce7db0a9f9.jpg"},2187:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/benthic-habitats-add-page-821de9a1cb7c036d59d6defc10f23460.jpg"},62848:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/coral-reef-card-add-to-page-89529c6834ef771d4a06d72ac0137b0f.jpg"},97287:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/coral-reef-card-collection-42587097890cc8cb14f0276d105af2b1.jpg"},8847:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/coral-reef-card-sketch-a752ef560d2ef81510dcc024f968b2b3.jpg"},81465:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/eez-bbox-eaed173f82fe29cdd6c06782e621ff43.jpg"},94616:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/eez-with-land-a17837dd0ade1b26dd289529dc938a38.jpg"},41538:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/preprocessing-after-e56cf27fb55e189a0e64f9f57b9bf08c.jpg"},58667:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/preprocessing-before-9d8ee3df0ac13b3e9f47dec8a2dc8d11.jpg"},35162:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/reef-extent-c5b22beda714f8f21941e25144be67f2.jpg"},38223:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/seamount-add-page-cab8cc26896f4fba2d2bb5879d19a6c7.jpg"},37720:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/seamount-map-dc1c4407048d2b89867320ad14dcf8b7.jpg"},51899:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/simple-card-table-fb0438e81de84b2fabe0ab3a176cb0c5.jpg"},44424:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/simple-card-view-baa6031f291f646309b58f5edcfe6c9a.jpg"},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>i});var s=t(96540);const r={},a=s.createContext(r);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[21895],{88794:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var s=t(74848),r=t(28453);const a={},o="Create Sample Project",i={id:"tutorials/sampleproject",title:"Create Sample Project",description:"This tutorial walks through creating a sample geoprocessing project for the Federated States of Micronesia. It demonstrates multiple methods for doing spatial analysis and creating reports, from low-level to high-level, so that you can engage with it at any/all of the levels needed for your project.",source:"@site/docs/tutorials/sampleproject.md",sourceDirName:"tutorials",slug:"/tutorials/sampleproject",permalink:"/geoprocessing/docs/next/tutorials/sampleproject",draft:!1,unlisted:!1,editUrl:"https://github.com/seasketch/geoprocessing/tree/main/website/templates/shared/docs/tutorials/sampleproject.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"System Setup",permalink:"/geoprocessing/docs/next/tutorials/"},next:{title:"Create New Project",permalink:"/geoprocessing/docs/next/tutorials/newproject"}},c={},l=[{value:"Initialize Geoprocessing Project",id:"initialize-geoprocessing-project",level:2},{value:"Create Git repo",id:"create-git-repo",level:2},{value:"Preprocessing",id:"preprocessing",level:2},{value:"Testing",id:"testing",level:3},{value:"Simple Report",id:"simple-report",level:2},{value:"simpleFunction",id:"simplefunction",level:3},{value:"SimpleReport",id:"simplereport",level:3},{value:"Language Translation",id:"language-translation",level:3},{value:"Generate Examples",id:"generate-examples",level:3},{value:"Run test suite",id:"run-test-suite",level:3},{value:"Storybook",id:"storybook",level:3},{value:"Simple Function Modifications",id:"simple-function-modifications",level:3},{value:"Simple Report Modification",id:"simple-report-modification",level:3},{value:"First Project Build",id:"first-project-build",level:3},{value:"Reef Report",id:"reef-report",level:2},{value:"Import Data",id:"import-data",level:3},{value:"Precalc Data",id:"precalc-data",level:3},{value:"Create Report",id:"create-report",level:3},{value:"Add to Tab Report",id:"add-to-tab-report",level:3},{value:"Benthic Habitat Report",id:"benthic-habitat-report",level:2},{value:"Import Data",id:"import-data-1",level:3},{value:"Precalc Data",id:"precalc-data-1",level:3},{value:"World Geography",id:"world-geography",level:3},{value:"Add Metric Group",id:"add-metric-group",level:3},{value:"Create Report",id:"create-report-1",level:3},{value:"Test New Example Sketch",id:"test-new-example-sketch",level:3},{value:"Add To Tab Report",id:"add-to-tab-report-1",level:3},{value:"Seamount Report",id:"seamount-report",level:2},{value:"Import Data",id:"import-data-2",level:3},{value:"Precalc Data",id:"precalc-data-2",level:3},{value:"Add Objective",id:"add-objective",level:3},{value:"Add Metric Group",id:"add-metric-group-1",level:3},{value:"Create Report",id:"create-report-2",level:3},{value:"Add To Tab Report",id:"add-to-tab-report-2",level:3},{value:"Data Complexity",id:"data-complexity",level:3},{value:"Coral Species Report",id:"coral-species-report",level:2},{value:"Import Data",id:"import-data-3",level:3},{value:"Precalc",id:"precalc",level:3},{value:"Add Metric Group",id:"add-metric-group-2",level:3},{value:"Add Objective",id:"add-objective-1",level:3},{value:"Create Report",id:"create-report-3",level:3},{value:"Add To Tab Report",id:"add-to-tab-report-3",level:3},{value:"Language Translation",id:"language-translation-1",level:3},{value:"Create Github Project",id:"create-github-project",level:2},{value:"What's Next",id:"whats-next",level:2}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components},{Details:a}=n;return a||function(e,n){throw new Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"create-sample-project",children:"Create Sample Project"})}),"\n",(0,s.jsx)(n.p,{children:"This tutorial walks through creating a sample geoprocessing project for the Federated States of Micronesia. It demonstrates multiple methods for doing spatial analysis and creating reports, from low-level to high-level, so that you can engage with it at any/all of the levels needed for your project."}),"\n",(0,s.jsx)(n.p,{children:"The planning area for this example is defined as extending from the Micronesia baseline (coastline/shoreline) to the outer boundary of the Exclusive Economic Zone (200 nautical miles)."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"EEZ with land",src:t(94616).A+"",width:"2113",height:"1099"})}),"\n",(0,s.jsx)(n.p,{children:"This tutorial assumes:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Your ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/",children:"system setup"})," is complete"]}),"\n",(0,s.jsx)(n.li,{children:"Your geoprocessing virtual environment is running (Devcontainer or WSL)"}),"\n",(0,s.jsx)(n.li,{children:"You have VSCode open in your virtual environment with a terminal pane open"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Have questions along the way? Start a ",(0,s.jsx)(n.a,{href:"https://github.com/seasketch/geoprocessing/discussions",children:"discussion"})," on Github"]}),"\n",(0,s.jsx)(n.h2,{id:"initialize-geoprocessing-project",children:"Initialize Geoprocessing Project"}),"\n",(0,s.jsxs)(n.p,{children:["Start the project ",(0,s.jsx)(n.code,{children:"init"})," process, which will download the framework, and collect required project metadata."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-sh",children:"cd /workspaces\nnpx @seasketch/geoprocessing@7.0.0-beta.13 init 7.0.0-beta.13\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Choose a name for your project\nfsm-reports-test\n? Please provide a short description of this project\nMicronesia reports\n? Source code repository location\n[LEAVE BLANK]\n? Your name\n[YOUR_NAME]\n? Your email\n[YOUR_EMAIL]\n? Organization name (optional)\nExample organization\n? What software license would you like to use?\nBSD-3-Clause\n? What AWS region would you like to deploy functions in?\nus-west-1\n? What languages will your reports be published in, other than English? (leave blank for none)\nChuukese\nKosraean\n"})}),"\n",(0,s.jsx)(n.p,{children:"After pressing Enter, your project will be created and all NodeJS software dependencies installed. If your language is not present, you will be able to add it later."}),"\n",(0,s.jsx)(n.p,{children:"Now, re-open VSCode one level deeper, in your project folder::"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"File -> Open Folder\nType /workspaces/fsm-reports-test/\nPress Ctrl-J or Ctrl-backtick to open a new terminal\n"})}),"\n",(0,s.jsx)(n.h2,{id:"create-git-repo",children:"Create Git repo"}),"\n",(0,s.jsx)(n.p,{children:"Before you continue, let's create a local git repository and commit everything so far as a starting point."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'git init\ngit add .\ngit commit -m "first commit"\ngit branch -M main\n'})}),"\n",(0,s.jsxs)(n.p,{children:["After this point, you can continue using git commands in the terminal to stage code changes and commit them if that's what you know, or you can use VSCode's ",(0,s.jsx)(n.a,{href:"https://code.visualstudio.com/docs/sourcecontrol/overview",children:"built-in git support"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about your projects folder structure, visit the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/structure",children:"structure"})," page."]}),"\n",(0,s.jsx)(n.h2,{id:"preprocessing",children:"Preprocessing"}),"\n",(0,s.jsx)(n.p,{children:'Preprocessing functions are invoked by the SeaSketch platform, on a user-drawn shape, right after the user finishes drawing it. It\'s a specialized function that validates a drawn shape and potentially modifies it, such as to remove portions of the shape outside the planning boundary. This "clipping" of the shape is useful in that it allows a user to overdraw beyond the planning boundary and it will be clipped right to the edge of that boundary.'}),"\n",(0,s.jsx)(n.p,{children:"Here is an example of a preprocessor clipping a user drawn polygon to erase any part overlapping with land"}),"\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:"Before Clip"}),(0,s.jsx)(n.th,{children:"After Clip"})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{alt:"Before",src:t(58667).A+"",title:"Before",width:"885",height:"708"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.img,{alt:"After",src:t(41538).A+"",title:"After",width:"773",height:"618"})})]})})]}),"\n",(0,s.jsxs)(n.p,{children:["In the ",(0,s.jsx)(n.code,{children:"src/functions"})," directory you will find four preprocessing functions that come with every project, and they are further configureable to meet your needs:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"validatePolygon"})," - verifies shape is not self-crossing, is at least a certain size (default to 500 square meters) and no larger than a certain size (defaults to 1 million square kilometers)."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clipToLand"})," - clips the shape to just the portion on land, as defined by OpenStreeMap land polygons. Includes validatePolygon."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clipToOcean"})," - clips the shape to remove the portion on land, as defined by OpenStreetMap land polygons. Includes validatePolygon."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"clipToOceanEez"})," - clips the shape to keep the portion within the boundary from the coastline to the outer boundary of the EEZ. Includes validatePolygon."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["These functions use datasources published by the ",(0,s.jsx)(n.a,{href:"https://github.com/seasketch/global-datasources/tree/main",children:"global datasources"})," project. These datasources can be replaced with more authoritative ones in your own projects, or you can follow the instructions on the website to export the specific subset of the data relevant to your project, and import it directly into your project."]}),"\n",(0,s.jsx)(n.h3,{id:"testing",children:"Testing"}),"\n",(0,s.jsx)(n.p,{children:"Each preprocessing function has its own unit test and smoke test file. For example:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Unit: ",(0,s.jsx)(n.code,{children:"src/functions/validatePolygon.test.ts"})]}),"\n",(0,s.jsxs)(n.li,{children:["Smoke: ",(0,s.jsx)(n.code,{children:"src/functions/validatePolygonSmoke.test.ts"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Unit tests"})," ensure the preprocessor produces exact output for very specific input features and configuration, and throws errors properly."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.strong,{children:"Smoke tests"}),' are about ensuring the preprocessor behaves properly for your project location, and that its results "look right" for a variety of input features. It does this by loading example shapes from the project ',(0,s.jsx)(n.code,{children:"examples/features"})," directory. It then runs the preprocessing function on the examples, makes sure they produce output, and saves them to ",(0,s.jsx)(n.code,{children:"examples/output"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"To test your preprocessing functions, we need to create example features within the extent of our Micronesian planning area. To do this, run the following script:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'npx tsx scripts/genRandomPolygon.ts --outDir examples/features --filename polygon1.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]"\nnpx tsx scripts/genRandomPolygon.ts --outDir examples/features --filename polygon2.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]"\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This will output an example Feature and an example FeatureCollection to ",(0,s.jsx)(n.code,{children:"examples/features"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Now run the tests:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm test\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You can now look at the geojson output files in the ",(0,s.jsx)(n.code,{children:"examples/output"})," directory, including visually by opening them in QGIS or pasting the JSON into geojson.io. This is the best way to visually verify the preprocessor worked as expected."]}),"\n",(0,s.jsx)(n.p,{children:"This is a good checkpoint to commit your latest changes to Github."}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about preprocessing, check out the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/preprocessing",children:"guide"})]}),"\n",(0,s.jsx)(n.h2,{id:"simple-report",children:"Simple Report"}),"\n",(0,s.jsx)(n.p,{children:"Your new project comes with a simple report that calculates the area of a sketch or sketch collection and presents it in a human readable format. Let's look at the pieces that go into this report."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Simple Card View",src:t(44424).A+"",width:"964",height:"661"})}),"\n",(0,s.jsx)(n.h3,{id:"simplefunction",children:"simpleFunction"}),"\n",(0,s.jsxs)(n.p,{children:["The area calculation is done within a geoprocessing function in ",(0,s.jsx)(n.code,{children:"src/functions/simpleFunction.ts"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Geoprocessing functions are invoked by a report client, as soon as its loaded in the browser by SeaSketch. It's a specialized function that takes a Sketch polygon or collection of Sketch polygons, performs some analysis, and returns the result to be displayed in the report client."}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/functions/simpleFunction.ts"})," and you will notice this function defines a custom result payload called ",(0,s.jsx)(n.code,{children:"SimpleResults"}),", which in this case is a Javascript object with an ",(0,s.jsx)(n.code,{children:"area"})," property containing a number value."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export interface SimpleResults {\n /** area of sketch within geography in square meters */\n area: number;\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"simpleFunction"})," starts off with the basic signature of a geoprocessing function. It accepts a ",(0,s.jsx)(n.code,{children:"sketch"})," parameter that is either a single ",(0,s.jsx)(n.code,{children:"Sketch"})," polygon or a ",(0,s.jsx)(n.code,{children:"SketchCollection"})," with multiple Sketch polygons. Unless your planning project only requires users to design single sketches and not collections, your geoprocessing function must be able to handle both."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"async function simpleFunction(\n sketch:\n | Sketch\n | SketchCollection,\n): Promise {\n"})}),"\n",(0,s.jsx)(n.p,{children:"The function then performs its analysis and returns the result."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"// Add analysis code\nconst sketchArea = area(sketch);\n\n// Custom return type\nreturn {\n area: sketchArea,\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Below that, a new ",(0,s.jsx)(n.code,{children:"GeoprocessingHandler"})," is instantiated, with simpleFunction passed into it. Behind the scenes, this wraps simpleFunction in an AWS Lambda handler function, which once deployed to AWS, allows the geoprocessing function to be invoked using an API call, by a report client running in a web browser."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'export default new GeoprocessingHandler(simpleFunction, {\n title: "simpleFunction",\n description: "Function description",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"GeoprocessingHandler"})," requires a ",(0,s.jsx)(n.code,{children:"title"})," and ",(0,s.jsx)(n.code,{children:"description"}),", which uniquely identifies the function that will be published by your project. It also accepts some additional parameters defining what resources the Lamda should have, and its behavior:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"timeout"}),": how many seconds the Lambda will run before it times out in error."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"memory"}),": memory allocated to the Lambda, can go up to 10,240 MB. Number of processors increase with memory size automatically."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"executionMode"}),": determines how the report client waits for geoprocessing function results, defaults to async. Sync - wait with connection open for immediate results, Async - wait for web socket message that results are ready, then fetch. Sync should only be used for very fast geoprocessing functions (1-2 seconds max). Think of it as a performance optimization."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"You can change all these parameter values to suit your needs, but the default values are suitable for now."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"simpleFunction"})," is already registered as a geoprocessing function in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"Now let's look at the browser report client that invokes this function."}),"\n",(0,s.jsx)(n.h3,{id:"simplereport",children:"SimpleReport"}),"\n",(0,s.jsxs)(n.p,{children:["A report client is a top-level React component for rendering a report in the users web browser. Report clients are located in the ",(0,s.jsx)(n.code,{children:"src/clients"})," directory and are responsible for the layout of one or more ",(0,s.jsx)(n.code,{children:"Card"})," components. Cards are able to invoke geoprocessing functions and display their results."]}),"\n",(0,s.jsx)(n.p,{children:"The two report clients that come with your project are:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"SimpleReport.tsx"})," - simple one page report client containing a SketchAttributesCard and a SimpleCard."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"TabReport.tsx"})," - more complex multi-page report layout controlled by a tab switcher component, so that only one page is in view at a time."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Both these report clients are already registered in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"}),". To start, let's focus on ",(0,s.jsx)(n.code,{children:"SimpleReport"})," and ",(0,s.jsx)(n.code,{children:"SimpleCard"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:"export const SimpleReport = () => {\n return (\n \n \n \n \n );\n};\n"})}),"\n",(0,s.jsxs)(n.p,{children:["SimpleReport renders two cards, ",(0,s.jsx)(n.code,{children:"SimpleCard"})," and ",(0,s.jsx)(n.code,{children:"SketchAttributesCard"}),", wrapping them in a languge ",(0,s.jsx)(n.code,{children:"Translator"})," component (you will learn more about this later)."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"SketchAttributes"})," card is a card component that displays the properties of the users Sketch. No geoprocessing function is needed to do its work."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"SimpleCard"})," is a card component that invokes simpleFunction and displays its results. Let's look at it closer."]}),"\n",(0,s.jsxs)(n.p,{children:["The first thing to notice is that SimpleCard renders a ",(0,s.jsx)(n.code,{children:"ResultsCard"})," component. Behind the scenes ResultsCard invokes the geoprocessing function with the ",(0,s.jsx)(n.code,{children:"functionName"})," provided (simpleFunction). Keep in mind that in a production environment the ResultsCard is rendered in your web browser and the geoprocessing function is a Lambda function in Amazon's cloud invoked via an API call."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'\n'})}),"\n",(0,s.jsx)(n.p,{children:"ResultsCard then contains a render function that is provided with the results."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'{\n (data: SimpleResults) => {\n const areaSqKm = data.area / 1_000_000;\n const areaString = roundDecimalFormat(areaSqKm, 0, {\n keepSmallValues: true,\n });\n const sketchStr = isCollection ? t("sketch collection") : t("sketch");\n\n return (\n <>\n

\n \n This {{ sketchStr }} is {{ areaString }} square kilometers.\n \n

\n \n );\n };\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This render function takes an input parameter ",(0,s.jsx)(n.code,{children:"data"})," that has the same type (",(0,s.jsx)(n.code,{children:"SimpleResults"}),") as the return type of ",(0,s.jsx)(n.code,{children:"simpleFunction"}),". This gives you fully typed access to your report results."]}),"\n",(0,s.jsxs)(n.p,{children:["The code in this render function is the heart of each report card. This particular card takes the ",(0,s.jsx)(n.code,{children:"area"})," value it is given in square meters, and converts it to square kilometers. It then rounds it to a whole number, and formats it to make it more readable. Also notice that it renders a slightly different message depending on whether it is a single sketch or a sketch collection being reported on."]}),"\n",(0,s.jsx)(n.h3,{id:"language-translation",children:"Language Translation"}),"\n",(0,s.jsxs)(n.p,{children:["The last thing to notice is that SimpleCard contains a lot of boilerplate for language translation of its strings (using ",(0,s.jsx)(n.a,{href:"https://react.i18next.com/",children:(0,s.jsx)(n.code,{children:"react-i18next"})}),"). If your reports need to be multi-lingual you will need to to use these, otherwise you can drop them."]}),"\n",(0,s.jsx)(n.p,{children:"Language translation is a multi-part process:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["First, a combination of ",(0,s.jsx)(n.code,{children:"useTranslation"}),", ",(0,s.jsx)(n.code,{children:"t"})," function, and ",(0,s.jsx)(n.code,{children:"Trans"})," components are used to establish which strings in your report client and components should be translated."]}),"\n",(0,s.jsxs)(n.li,{children:["Next, those translateable strings are extracted using the ",(0,s.jsx)(n.code,{children:"extract:translation"})," command, and output to ",(0,s.jsx)(n.code,{children:"src/i18n/lang/en/translation.json"}),". The strings extracted for SimpleCard are:"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "sketch": "sketch",\n "sketch collection": "sketch collection",\n "SimpleCard sketch size message": "This {{sketchStr}} is {{areaString}} square kilometers.",\n}\n'})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"The English translation file is then translated to the other needed languages and put into their own translation files"}),"\n",(0,s.jsxs)(n.li,{children:["The ",(0,s.jsx)(n.code,{children:"Translator"})," component in your report client is then responsible for inspecting the users language at runtime in the browser and swapping the English strings for strings in the appropriate language."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This process is covered in more detail in a separate doc."}),"\n",(0,s.jsx)(n.h3,{id:"generate-examples",children:"Generate Examples"}),"\n",(0,s.jsxs)(n.p,{children:["With a working geoprocessing function and report client already in place, you're ready to generate example sketches for testing them. We'll use the same ",(0,s.jsx)(n.code,{children:"genRandomPolygon"})," script as before. But let's look closer at how we figured out the bounding box extent of the Micronesian planning area. First, use ogrinfo to inspect the Micronesia EEZ polygon data layer in your data package."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"ogrinfo -so -json data/src/eez_withland_mr.fgb\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Deep in its output you will see a ",(0,s.jsx)(n.code,{children:"geometryFields"})," property, which contains the bounding box extent of the EEZ feature. Use the ",(0,s.jsx)(n.code,{children:"jq"})," utility to extract this extent:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"ogrinfo -so -json data/src/eez_withland_mr.fgb | jq -c .layers[0].geometryFields[0].extent\n[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]\n"})}),"\n",(0,s.jsx)(n.p,{children:"This will output an array with the extent of the EEZ. This is just one of multiple possible methods to get this extent. You are welcome to use the method that works best for you."}),"\n",(0,s.jsx)(n.p,{children:"Now run the genRandomPolygon script with this extent. The following examples will create a Sketch polygon, and then a SketchCollection containing 10 Sketch polygons."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'npx tsx scripts/genRandomPolygon.ts --outDir examples/sketches --filename sketch1.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]" --bboxShrinkFactor 5 --sketch\nnpx tsx scripts/genRandomPolygon.ts --outDir examples/sketches --filename sketchCollection1.json --bbox "[135.31244183762126,-1.1731109652985907,165.67652822599732,13.445432925389298]" --bboxShrinkFactor 5 --sketch --numFeatures 10\n'})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"--bboxShrinkFactor"})," argument used shrinks the height and width of the given bbox by a factor of 5, and then generates random features that are within that reduced bbox. A suitable shrink factor value was discovered through trial and error. Simply visualize the resulting json file in QGIS or other software and find a value that produces polygons that are completely within the planning area polygon. (see image below)."]}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.img,{alt:"EEZ bbox",src:t(81465).A+"",width:"1278",height:"661"}),"\nImage: cluster of 10 random sketches (in orange) within Micronesia EEZ"]}),"\n",(0,s.jsxs)(n.p,{children:["Learn more about the options for ",(0,s.jsx)(n.code,{children:"genRandomPolygon"})," by running:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{children:"npx tsx scripts/genRandomPolygon.ts --help\n"})}),"\n",(0,s.jsx)(n.h3,{id:"run-test-suite",children:"Run test suite"}),"\n",(0,s.jsxs)(n.p,{children:["Now that you have example features and sketches, you can test ",(0,s.jsx)(n.code,{children:"simpleFunction"}),". Run the test suite now:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm test\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Using ",(0,s.jsx)(n.code,{children:"simpleFunctionSmoke.test.ts"}),", simpleFunction will be run against all of the polygon Sketches in ",(0,s.jsx)(n.code,{children:"examples/sketches"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["The results of all smokes tests are output to the ",(0,s.jsx)(n.code,{children:"examples/output"})," directory."]}),"\n",(0,s.jsx)(n.li,{children:"You can inspect the output files, and see the calculated area values for each sketch input."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Commit the output files to your git repository at this time."}),"\n",(0,s.jsxs)(n.p,{children:["You can make changes to simpleFunction, then rerun tests to regenerate them at any time, and delete any that are stale and no longer needed. For advanced use, check out the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/testing",children:"testing"})," guide."]}),"\n",(0,s.jsx)(n.h3,{id:"storybook",children:"Storybook"}),"\n",(0,s.jsx)(n.p,{children:"Storybook is used to view your reports."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run storybook\n"})}),"\n",(0,s.jsx)(n.p,{children:"This will:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Generate a story for every combination of report client registered in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"})," and sketch present in ",(0,s.jsx)(n.code,{children:"examples/sketches"}),"."]}),"\n",(0,s.jsx)(n.li,{children:"Load all of the smoke test output for every sketch (to load in stories instead of running geoprocessing functions)"}),"\n",(0,s.jsx)(n.li,{children:"Start the storybook server and give you the URL."}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Open the storybook URL in your browser and click through the stories."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Simple Card View",src:t(44424).A+"",width:"964",height:"661"})}),"\n",(0,s.jsx)(n.p,{children:"A powerful feature of Storybook is that when you save edits to your report client or component code, storybook will refresh the browser automatically with the changes. This lets you develop your reports and debug them more quickly."}),"\n",(0,s.jsx)(n.p,{children:"There are a couple of situations that will cause you to need to stop your storybook server (Ctrl-C) and then restart it to pick up the changes."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["you add more sketch examples to your ",(0,s.jsx)(n.code,{children:"examples/sketch"})," directory"]}),"\n",(0,s.jsx)(n.li,{children:"you rerun smoke tests and generate new test output"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Learn more in the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/storybook",children:"storybook guide"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"simple-function-modifications",children:"Simple Function Modifications"}),"\n",(0,s.jsx)(n.p,{children:"Let's enhance your simple geoprocessing function to calculate more detailed information when the report is run on a sketch collection. It should calculate the area of the entire collection, and the area of each child sketch in the collection."}),"\n",(0,s.jsxs)(n.p,{children:["First modify SimpleResults with an additional property ",(0,s.jsx)(n.code,{children:"childSketchAreas"})," that can store this information:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export interface SimpleResults {\n /** area of reef within sketch in square meters */\n area: number;\n childSketchAreas: {\n /** Name of the sketch */\n name: string;\n /** Area of the sketch in square meters */\n area: number;\n }[];\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:"Then calculate the additional values and return them in the result payload:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Add analysis code\nconst sketchArea = area(sketch);\n\nlet childSketchAreas: SimpleResults["childSketchAreas"] = [];\nif (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => ({\n name: sketch.properties.name,\n area: area(sketch),\n }));\n}\n\n// Custom return type\nreturn {\n area: sketchArea,\n childSketchAreas,\n};\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Here's what the final ",(0,s.jsx)(n.code,{children:"simpleFunction"})," code should look like:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/functions/simpleFunction.ts"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {\n Sketch,\n SketchCollection,\n Polygon,\n MultiPolygon,\n GeoprocessingHandler,\n toSketchArray,\n} from "@seasketch/geoprocessing";\nimport { area } from "@turf/turf";\n\nexport interface SimpleResults {\n /** area of reef within sketch in square meters */\n area: number;\n childSketchAreas: {\n /** Name of the sketch */\n name: string;\n /** Area of the sketch in square meters */\n area: number;\n }[];\n}\n\n/**\n * Simple geoprocessing function with custom result payload\n */\nasync function simpleFunction(\n sketch:\n | Sketch\n | SketchCollection,\n): Promise {\n // Add analysis code\n const sketchArea = area(sketch);\n\n let childSketchAreas: SimpleResults["childSketchAreas"] = [];\n if (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => ({\n name: sketch.properties.name,\n area: area(sketch),\n }));\n }\n\n // Custom return type\n return {\n area: sketchArea,\n childSketchAreas,\n };\n}\n\nexport default new GeoprocessingHandler(simpleFunction, {\n title: "simpleFunction",\n description: "Function description",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Run your tests again to generate the new smoke test output:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run test\n"})}),"\n",(0,s.jsx)(n.h3,{id:"simple-report-modification",children:"Simple Report Modification"}),"\n",(0,s.jsxs)(n.p,{children:["Now let's modify SimpleReportCard to display the new data. You will add a new ",(0,s.jsx)(n.code,{children:"Collapse"})," section with a ",(0,s.jsx)(n.code,{children:"Table"})," component that lists out the sketch areas by name."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'

\n \n This {{ sketchStr }} is {{ areaString }} km\xb2.\n \n

\n{isCollection && (\n \n \n roundDecimalFormat(row.area / 1_000_000, 0, {\n keepSmallValues: true,\n }),\n },\n ]}\n />\n \n)}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Here's what the final SimpleCard code should look like:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/components/SimpleCard.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'import React from "react";\nimport { Trans, useTranslation } from "react-i18next";\nimport {\n Collapse,\n ResultsCard,\n Table,\n useSketchProperties,\n} from "@seasketch/geoprocessing/client-ui";\n// Import SimpleResults to type-check data access in ResultsCard render function\nimport { SimpleResults } from "../functions/simpleFunction.js";\nimport { roundDecimalFormat } from "@seasketch/geoprocessing/client-core";\n\nexport const SimpleCard = () => {\n const { t } = useTranslation();\n const [{ isCollection }] = useSketchProperties();\n const titleTrans = t("SimpleCard title", "Simple Report");\n return (\n <>\n \n {(data: SimpleResults) => {\n const areaSqKm = data.area / 1_000_000;\n const areaString = roundDecimalFormat(areaSqKm, 0, {\n keepSmallValues: true,\n });\n const sketchStr = isCollection ? t("sketch collection") : t("sketch");\n\n return (\n <>\n

\n \n This {{ sketchStr }} is {{ areaString }} km\xb2.\n \n

\n {isCollection && (\n \n \n roundDecimalFormat(row.area / 1_000_000, 0, {\n keepSmallValues: true,\n }),\n },\n ]}\n />\n \n )}\n \n );\n }}\n
\n \n );\n};\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"If your storybook is still running from last time, you will need to restart it to pick up the new smoke test output."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"Ctrl-C\nnpm run storybook\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Your updated report should have a new collapsible table, that when expanded looks like the following:\n",(0,s.jsx)(n.img,{alt:"Simple Card with table",src:t(51899).A+"",width:"747",height:"679"})]}),"\n",(0,s.jsx)(n.h3,{id:"first-project-build",children:"First Project Build"}),"\n",(0,s.jsxs)(n.p,{children:["Now that you have confirmed your function is working properly, and your report client displays properly for a variety of example sketches, you are ready to do your first build. The application ",(0,s.jsx)(n.code,{children:"build"})," proceess packages it for deployment. Specifically it:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Checks all the Typescript code to make sure it's valid and types are used properly."}),"\n",(0,s.jsx)(n.li,{children:"Transpiles all Typescript to Javascript"}),"\n",(0,s.jsxs)(n.li,{children:["Bundles UI report clients into the ",(0,s.jsx)(n.code,{children:".build-web"})," directory"]}),"\n",(0,s.jsxs)(n.li,{children:["Bundles geoprocessing and preprocessing functions into the ",(0,s.jsx)(n.code,{children:".build"})," directory."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"To build your application run the following:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run build\n"})}),"\n",(0,s.jsx)(n.p,{children:"Once your build is successful, you should stage and commit all your changes to git."}),"\n",(0,s.jsx)(n.h2,{id:"reef-report",children:"Reef Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a coral reef report that uses the reef extent dataset. Here is an image of it displayed in QGIS. Notice that the coral is entirely in shallow water around the island coastline and atolls."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Reef Extent",src:t(35162).A+"",width:"2053",height:"1024"})}),"\n",(0,s.jsx)(n.h3,{id:"import-data",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"To access this datasource, first download a data package prepared for FSM to your project space and unzip it:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"wget -P data/src https://github.com/user-attachments/files/18030075/FSM_MSP_Data_Example_v2.zip\nunzip data/src/FSM_MSP_Data_Example_v2.zip -d data/src\nrm data/src/FSM_MSP_Data_Example_v2.zip\n"})}),"\n",(0,s.jsx)(n.p,{children:"Now import the datasource to your project."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of data?\nVector\n? Enter path to src file (with filename)\ndata/src/reefextent.fgb\n? Select layer to import\nreefextent\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nreefextent\n? Should multi-part geometries be split into single-part geometries?\nYes\n? (Optional) additional formats to create (besides fgb)\n[Press enter to skip]\n? Select feature properties that you want to group metrics by\n[Press enter to skip]\n? Select additional feature properties to keep in final datasource\n[Press enter to skip]\n? These formats are automatically created: fgb. Select any additional formats you want created\n[Press enter to skip]\n? Will you be precalculating summary metrics for this datasource after import? (Typically yes if reporting sketch % overlap with datasource)\nYes\n"})}),"\n",(0,s.jsx)(n.p,{children:"The import process will:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"reproject your data to the WGS84 reference system, if not already (required by Turf.JS)"}),"\n",(0,s.jsxs)(n.li,{children:["split any features that cross the 180 degree ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/antimeridian",children:"antimeridian"})]}),"\n",(0,s.jsx)(n.li,{children:"reduce the source dataset down to only the necessary attributes (saving network bandwidth later)"}),"\n",(0,s.jsxs)(n.li,{children:["output a new file in the cloud-optimized flatgeobuf format to the ",(0,s.jsx)(n.code,{children:"data/dist"})," directory."]}),"\n",(0,s.jsxs)(n.li,{children:["register the datasource in ",(0,s.jsx)(n.code,{children:"project/datasources.json"}),", along with additional metadata. This allows you to:","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["quickly access project datasources in your reports using the ",(0,s.jsx)(n.code,{children:"projectClient"})," (more on this later)"]}),"\n",(0,s.jsxs)(n.li,{children:["quickly reimport datasources using the ",(0,s.jsx)(n.code,{children:"reimport:data"})," command, without having to answer questions again."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Once the import is finished, you are ready to use your datasources for ",(0,s.jsx)(n.code,{children:"local"})," report development. You can add, edit, or delete records in datasources.json manually to meet your need as long as the records meet the expected ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/concepts#datasources",children:"schema"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"precalc-data",children:"Precalc Data"}),"\n",(0,s.jsx)(n.p,{children:"Next, you will create a standalone script to calculate the total area of the polygons in the reef extent datasource for use in the report. By doing this calculation ahead of time, you won't need to do it every time your geoprocessing function runs. There is an automated way of precalculating the area of a datasource, but the purpose of this is to teach you a workflow for doing it on your own."}),"\n",(0,s.jsxs)(n.p,{children:["Create a new file with the following code and save it to ",(0,s.jsx)(n.code,{children:"scripts/coralReefPrecalc.ts"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Run the following command from the project root directory\n// npx tsx scripts/coralReefPrecalc.ts\n\nimport { area } from "@turf/turf";\nimport { geojson } from "flatgeobuf";\nimport { readFileSync } from "fs";\nimport fs from "fs-extra";\n\n// Fetch all reef features and calculate total area\nconst buffer = readFileSync(\n `${import.meta.dirname}/../data/dist/reefextent.fgb`,\n);\nconst reefFeatures = geojson.deserialize(new Uint8Array(buffer));\nconst totalArea = area(reefFeatures);\n\nconst reefPrecalc = {\n totalAreaSqMeters: totalArea,\n};\n\nfs.ensureDirSync(`${import.meta.dirname}/../data/precalc`);\nfs.writeJsonSync(\n `${import.meta.dirname}/../data/precalc/reefextent.json`,\n reefPrecalc,\n);\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Now run it. Your shell needs to be in the root directory of your project to run this Typescript file directly using ",(0,s.jsx)(n.code,{children:"npx"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npx tsx scripts/coralReefPrecalc.ts\n"})}),"\n",(0,s.jsxs)(n.p,{children:["The script fetches all features from the reef extent flatgeobuf file, calculates their total area and writes it to ",(0,s.jsx)(n.code,{children:"data/precalc/reefextent.json"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "totalArea": 716100906.2570591\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"We are going to use this precalculated value in a geoprocessing function in the next step."}),"\n",(0,s.jsx)(n.h3,{id:"create-report",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"To create a blank report ready to build on, run the following:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run create:report\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of report to create\nBlank report - empty report ready to build from scratch\n\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with reef extent datasource\n\n? Title for this report, in camelCase\ncoralReef\n\n\u2714 Created coralReef report\n\u2714 Registered report assets in project/geoprocessing.json\n\nGeoprocessing function: src/functions/coralReef.ts\nSmoke test: src/functions/coralReefSmoke.test.ts\nReport component: src/components/CoralReefCard.tsx\nStory generator: src/components/CoralReefCard.example-stories.ts\n\nNext Steps:\n * 'npm test' to run smoke tests against your new geoprocessing function\n * 'npm run storybook' to view your new report with smoke test output\n * Add to a top-level report client or page when ready\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/functions/coralReef.ts"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code to answer the following questions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"What percentage of all coral reef is within the current sketch polygon (or sketch collection polygons)?"}),"\n",(0,s.jsx)(n.li,{children:"If it is a sketch collection, does it meet the planning objective of protecting 20% of all coral reef?"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/functions/coralReef.ts"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {\n Sketch,\n SketchCollection,\n Polygon,\n MultiPolygon,\n GeoprocessingHandler,\n getFeaturesForSketchBBoxes,\n toSketchArray,\n clipMultiMerge,\n isSketchCollection,\n clip,\n Feature,\n} from "@seasketch/geoprocessing";\nimport project from "../../project/projectClient.js";\nimport { area, featureCollection } from "@turf/turf";\nimport reefPrecalc from "../../data/precalc/reefextent.json";\n\nexport interface CoralReefResults {\n /** area of all reef extent polygons in square meters */\n totalArea: number;\n /** area of reef extent within sketch or sketch collection in square meters */\n sketchArea: number;\n childSketchAreas: {\n /** Name of the sketch */\n name: string;\n /** Area of reef extent within child sketch in square meters */\n area: number | null;\n }[];\n}\n\n/**\n * Simple geoprocessing function with custom result payload\n */\nexport async function coralReef(\n sketch:\n | Sketch\n | SketchCollection,\n): Promise {\n // Load just the reef features that intersect with the sketch bounding box\n // or in case of a sketch collection, the child sketch bounding boxes\n const ds = project.getInternalVectorDatasourceById("reefextent");\n const url = project.getDatasourceUrl(ds);\n const reefFeatures: Feature[] =\n await getFeaturesForSketchBBoxes(sketch, url);\n\n // Add analysis code\n\n // If collection, calculate area of each sketches intersection with reef\n let childSketchAreas: CoralReefResults["childSketchAreas"] = [];\n if (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => {\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n sketch,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return {\n name: sketch.properties.name,\n area: sketchReefOverlap ? area(sketchReefOverlap) : 0,\n };\n });\n }\n\n // Calculate area of overall sketch intersection with reef\n const sketchArea = (() => {\n // Figure out feature to clip\n let clipFeature: Feature | null;\n if (reefFeatures.length === 0) {\n return 0;\n } else if (isSketchCollection(sketch)) {\n // union sketches to remove overlap and avoid double count\n clipFeature = clip(sketch, "union");\n if (!clipFeature) return 0;\n } else {\n clipFeature = sketch;\n }\n //Merge reefFeatures into a single multipolygon, then intersect\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n clipFeature,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return sketchReefOverlap ? area(sketchReefOverlap) : 0;\n })();\n\n // Custom return type\n return {\n totalArea: reefPrecalc.totalAreaSqMeters,\n sketchArea: sketchArea,\n childSketchAreas,\n };\n}\n\nexport default new GeoprocessingHandler(coralReef, {\n title: "coralReef",\n description: "calculate sketch overlap with reef extent datasource",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Notice that the code imports the totalArea value you precalculated and inserts it into the result payload, avoiding the need to recalculate it each time."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import reefPrecalc from "../../data/precalc/reefextent.json";\n\nreefPrecalc.totalArea;\n'})}),"\n",(0,s.jsx)(n.p,{children:"Then it fetches only the reef features whose bounding box intersects with the sketch bounding box, or in case of a sketch collection, that intersects with each of its child sketch bounding boxes. This is more efficient than fetching the entire reef dataset, saving time and network bandwidth."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Load just the reef features that intersect with the sketch bounding box\n// or in case of a sketch collection, the child sketch bounding boxes\nconst ds = project.getInternalVectorDatasourceById("reefextent");\nconst url = project.getDatasourceUrl(ds);\nconst reefFeatures: Feature[] =\n await getFeaturesForSketchBBoxes(sketch, url);\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Next, if the sketch is a collection, it calculates how much coral reef overlaps with each individual sketch. To do this, it needs to figure out the areas where the sketches and coral reef ",(0,s.jsx)(n.code,{children:"intersect"}),". This is calculated using the ",(0,s.jsx)(n.code,{children:"clipMultiMerge"})," function. It is essential that this function is used because it merges the reefFeatures collection into a single multipolygon before intersecting it with the sketch. If you were to use the ",(0,s.jsx)(n.code,{children:"clip"})," function you would need to loop through each reef feature and clip the sketch to it."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// If collection, calculate area of each sketches intersection with reef\nlet childSketchAreas: CoralReefResults["childSketchAreas"] = [];\nif (sketch.properties.isCollection) {\n childSketchAreas = toSketchArray(sketch).map((sketch) => {\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n sketch,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return {\n name: sketch.properties.name,\n area: sketchReefOverlap ? area(sketchReefOverlap) : 0,\n };\n });\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Finally, it calculates how much coral reef overlaps with the entire sketch/collection."}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"If there is no overlap between the reef and sketch, then it simply returns zero."}),"\n",(0,s.jsxs)(n.li,{children:["If it's a sketch collection it first performs a ",(0,s.jsx)(n.code,{children:"union"})," operation that merges all of the sketches into a single Multipolygon, dissolving any overlap between the sketches so that area is not double counted."]}),"\n",(0,s.jsx)(n.li,{children:"If it's a single sketch polygon then it just calculates its area and returns it."}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Calculate area of overall sketch intersection with reef\nconst sketchArea = (() => {\n // Figure out feature to clip\n let clipFeature: Feature | null;\n if (reefFeatures.length === 0) {\n return 0;\n } else if (isSketchCollection(sketch)) {\n // union sketches to remove overlap and avoid double count\n clipFeature = clip(sketch, "union");\n if (!clipFeature) return 0;\n } else {\n clipFeature = sketch;\n }\n //Merge reefFeatures into a single multipolygon, then intersect\n const sketchReefOverlap =\n reefFeatures.length > 0\n ? clipMultiMerge(\n clipFeature,\n featureCollection(reefFeatures),\n "intersection",\n )\n : null;\n return sketchReefOverlap ? area(sketchReefOverlap) : 0;\n})();\n\n// Custom return type\nreturn {\n totalArea: reefPrecalc.totalAreaSqMeters,\n sketchArea: sketchArea,\n childSketchAreas,\n};\n'})}),"\n",(0,s.jsx)(n.p,{children:"Now run tests to generate updated output for each of the sample sketches:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run test\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Confirm that the output looks as expected. It is possible none of your test sketches will overlap with any coral reef features in which case all area values will have a ",(0,s.jsx)(n.code,{children:"0"})," value."]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/output/sketchCollection1/coralReef.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "totalArea": 716100906.2570591,\n "sketchArea": 367734.86730626615,\n "childSketchAreas": [\n {\n "name": "sketchCollection1-1",\n "area": 428611581.5348215\n },\n {\n "name": "sketchCollection1-2",\n "area": 258701691.8012635\n },\n {\n "name": "sketchCollection1-3",\n "area": 599831752.2377243\n },\n {\n "name": "sketchCollection1-4",\n "area": 372585470.74404347\n },\n {\n "name": "sketchCollection1-5",\n "area": 562781719.588172\n },\n {\n "name": "sketchCollection1-6",\n "area": 528237794.83984125\n },\n {\n "name": "sketchCollection1-7",\n "area": 253970548.59694752\n },\n {\n "name": "sketchCollection1-8",\n "area": 376674659.1741572\n },\n {\n "name": "sketchCollection1-9",\n "area": 657788539.6501052\n },\n {\n "name": "sketchCollection1-10",\n "area": 712233449.0549812\n }\n ]\n}\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Now open src/components/CoralReefCard.tsx."}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Display the % of total coral reef captured within this sketch"}),"\n",(0,s.jsxs)(n.li,{children:["If it is a sketch collection","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Indicate whether the objective of protecting 20% of all coral reef has been met."}),"\n",(0,s.jsx)(n.li,{children:"Display a collapsible area with a breakdown of the area and % area of coral reef within each individual sketch in the collection."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/components/CoralReefCard.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React from "react";\nimport { Trans, useTranslation } from "react-i18next";\nimport {\n ResultsCard,\n useSketchProperties,\n HorizontalStackedBar,\n Collapse,\n Table,\n ObjectiveStatus,\n VerticalSpacer,\n} from "@seasketch/geoprocessing/client-ui";\nimport {\n percentWithEdge,\n roundDecimalFormat,\n squareMeterToKilometer,\n} from "@seasketch/geoprocessing/client-core";\n\n// Import CoralReefResults to type-check data access in ResultsCard render function\nimport { CoralReefResults } from "../functions/coralReef.js";\n\nexport const CoralReefCard = () => {\n const { t } = useTranslation();\n const [{ isCollection }] = useSketchProperties();\n const titleTrans = t("CoralReefCard title", "Coral Reef");\n return (\n <>\n \n {(data: CoralReefResults) => {\n const target = 0.2; // 20%\n const reefPerc = data.sketchArea / data.totalArea;\n const reefPercString = percentWithEdge(reefPerc);\n const targetPercString = percentWithEdge(target);\n\n const meetsObjective = reefPerc >= target;\n\n // Adjust values for chart to be in range 0-100\n const chartRows = [[[reefPerc * 100]]];\n\n const sketchTypeStr = isCollection\n ? t("sketch collection")\n : t("sketch");\n\n const meetsOrNotElement = meetsObjective ? (\n \n This {{ sketchTypeStr }} meets the objective of protecting{" "}\n {{ targetPercString }} of coral reef\n \n ) : (\n \n This {{ sketchTypeStr }} does not meet the objective of protecting{" "}\n {{ targetPercString }} of coral reef\n \n );\n\n return (\n <>\n

\n \n {{ reefPercString }} of all Micronesia coral reef is within\n this {{ sketchTypeStr }}.\n \n

\n {isCollection && (\n \n )}\n\n \n percentWithEdge(value / 100)}\n max={4}\n target={20}\n targetValueFormatter={(targetValue) => (\n \n Target {{ targetValue: percentWithEdge(targetValue / 100) }}\n \n )}\n rowConfigs={[\n {\n title: t("Total coral reef"),\n },\n ]}\n blockGroupNames={[]}\n blockGroupStyles={[{ backgroundColor: "#64c2a6" }]}\n />\n {isCollection && (\n \n \n roundDecimalFormat(squareMeterToKilometer(row.area)),\n },\n {\n Header: t("% Reef within Sketch"),\n accessor: (row: any) =>\n percentWithEdge(row.area / data.totalArea),\n },\n ]}\n />\n \n )}\n \n );\n }}\n
\n \n );\n};\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"There are multiple things worth noticing:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"squareMeterToKilometer"})," conversion helper function is used"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"percentWithEdge"})," and ",(0,s.jsx)(n.code,{children:"roundDecimalFormat"})," helper functions are used to format values to be more human readable. Will use locale settings of the users browser when formatting decimal and percent."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"HorizontalStackedBar"})," and ",(0,s.jsx)(n.code,{children:"ObjectiveStatus"})," core UI components present information in a more visually interesting way that can be reused across reports. See core ",(0,s.jsx)(n.a,{href:"/storybook",children:"storybook"})," for more examples of their use."]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Now, start storybook and view the result. You will find the CoralReefCard under the ",(0,s.jsx)(n.code,{children:"Components"})," section:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run storybook\n"})}),"\n",(0,s.jsx)(n.p,{children:"When viewing a sketch example, it should display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard sketch view",src:t(8847).A+"",width:"742",height:"291"})}),"\n",(0,s.jsx)(n.p,{children:"Keep in mind your sketch polygon examples are randomly generated so your numbers will vary from the ones shown."}),"\n",(0,s.jsx)(n.p,{children:'And when viewing a sketch collection example, it should display the additional "Show By Sketch" list:'}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard collection view",src:t(97287).A+"",width:"748",height:"928"})}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report",children:"Add to Tab Report"}),"\n",(0,s.jsx)(n.p,{children:"Now add the CoralReefCard to a new page in your top-level TabReport."}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and replace the code with the following:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React, { useState } from "react";\nimport { useTranslation } from "react-i18next";\nimport {\n SegmentControl,\n ReportPage,\n SketchAttributesCard,\n} from "@seasketch/geoprocessing/client-ui";\nimport Translator from "../components/TranslatorAsync.js";\nimport { SimpleCard } from "../components/SimpleCard.js";\nimport { CoralReefCard } from "../components/CoralReefCard.js";\n\nconst BaseReport = () => {\n const { t } = useTranslation();\n const segments = [\n { id: "OVERVIEW", label: t("Overview") },\n { id: "BIOLOGICAL", label: t("Biological") },\n ];\n const [tab, setTab] = useState < string > "OVERVIEW";\n\n return (\n <>\n
\n setTab(segment)}\n segments={segments}\n />\n
\n \n \n \n );\n};\n\n// Named export loaded by storybook\nexport const TabReport = () => {\n return (\n \n \n \n );\n};\n\n// Default export lazy-loaded by production ReportApp\nexport default TabReport;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard add to page",src:t(62848).A+"",width:"1453",height:"823"})}),"\n",(0,s.jsx)(n.p,{children:"You should be able to click the tabs and switch between report pages."}),"\n",(0,s.jsx)(n.h2,{id:"benthic-habitat-report",children:"Benthic Habitat Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a report summarizing sketch overlap with 3 classes of rocky substrate (rock, rubble, sand) in the benthic zone (seabottom). Here is an image of it displayed in QGIS within the Micronesian EEZ boundary. Similar to the coral reefs, notice that these 3 types of rocky seabottom are mostly in shallower water near the islands and atolls."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Benthic habitat map",src:t(13065).A+"",width:"1345",height:"688"})}),"\n",(0,s.jsx)(n.h3,{id:"import-data-1",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"First, import the data."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of data?\nVector\n? Enter path to src file (with filename)\ndata/src/benthic-rock.fgb\n? Select layer to import\nbenthic-rock\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nbenthic-rock\n? Should multi-part geometries be split into single-part geometries?\nYes\n? (Optional) additional formats to create (besides fgb)\n[Press Enter to skip]\n? Select feature properties that you want to group metrics by\nclass\n? Select additional feature properties to keep in final datasource\n[Press Enter to skip]\n\nAdding benthic-rock record in project/datasources.json file\n"})}),"\n",(0,s.jsx)(n.h3,{id:"precalc-data-1",children:"Precalc Data"}),"\n",(0,s.jsxs)(n.p,{children:["Before you can use your benthic report, you need to precalculate the area of your benthic polygons. Rather than writing your own script for this, as was done for coral reefs, the ",(0,s.jsx)(n.code,{children:"precalc:data"})," command is available that will inspect your vector datasource and precalculate basic summary metrics (total feature area, total feature count, etc). Let's look at the datasource record generated for our benthic-rock datasource to understand what precalc will do."]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"project/datasources.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'{\n "src": "data/src/benthic-rock.fgb",\n "layerName": "benthic-rock",\n "geo_type": "vector",\n "datasourceId": "benthic-rock",\n "formats": [\n "fgb"\n ],\n "classKeys": [\n "class"\n ],\n "created": "2024-11-28T05:58:26.284Z",\n "lastUpdated": "2024-11-28T05:58:26.284Z",\n "propertiesToKeep": [\n "class"\n ],\n "explodeMulti": true,\n "precalc": true\n}\n'})})]}),"\n",(0,s.jsxs)(n.p,{children:["You'll notice that the ",(0,s.jsx)(n.code,{children:"precalc"})," property is set to true. That means that it is made available for precalculation. You can disable precalculation for any datasource you want at any time by setting it to ",(0,s.jsx)(n.code,{children:"false"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["You'll also notice that the ",(0,s.jsx)(n.code,{children:"class"})," attribute is configured under ",(0,s.jsx)(n.code,{children:"classKeys"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"classKeys": [\n "class"\n],\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This is because when importing your datasource, when asked to select feature properties that you want to group metrics by, you selected ",(0,s.jsx)(n.code,{children:"class"}),". If present, the precalc command will use this to precalculate metrics by each unique value present in the dataset for the ",(0,s.jsx)(n.code,{children:"class"})," attribute. If not present, you can simply add it now and save your file."]}),"\n",(0,s.jsx)(n.p,{children:"You're now ready to precalculate your metrics."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run precalc:data\n\n? Do you want to precalculate only a subset?\nNo, just precalculate everything (may take a while)\n\n...\n\n2 datasource/geography combinations precalculated successfully\n2 datasource/geography combinations skipped due to precalc disabled\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You should now have precalculated ",(0,s.jsx)(n.code,{children:"area"})," and ",(0,s.jsx)(n.code,{children:"count"})," metrics for both reefextent and benthic-rock datasources. Let's look closer at the output."]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"project/precalc.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'[\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rock",\n "sketchId": null,\n "groupId": null,\n "value": 16604057.106034255\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rubble",\n "sketchId": null,\n "groupId": null,\n "value": 14568314.003883593\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Sand",\n "sketchId": null,\n "groupId": null,\n "value": 41378302.21403051\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-total",\n "sketchId": null,\n "groupId": null,\n "value": 72550673.32394843\n },\n {\n "geographyId": "world",\n "metricId": "area",\n "classId": "reefextent-total",\n "sketchId": null,\n "groupId": null,\n "value": 716231422.607066\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-Rock",\n "sketchId": null,\n "groupId": null,\n "value": 2712\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-Rubble",\n "sketchId": null,\n "groupId": null,\n "value": 2002\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-Sand",\n "sketchId": null,\n "groupId": null,\n "value": 2658\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "benthic-rock-total",\n "sketchId": null,\n "groupId": null,\n "value": 7372\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "reefextent-total",\n "sketchId": null,\n "groupId": null,\n "value": 14406\n }\n]\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Within this array of precalc metric records you will see four that represent the total area of all benthic-rock polygons and the total area for each of the 3 benthic rock classes:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-total",\n "sketchId": null,\n "groupId": null,\n "value": 72550673.32394843\n},\n{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rock",\n "sketchId": null,\n "groupId": null,\n "value": 16604057.106034255\n},\n{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Rubble",\n "sketchId": null,\n "groupId": null,\n "value": 14568314.003883593\n},\n{\n "geographyId": "world",\n "metricId": "area",\n "classId": "benthic-rock-Sand",\n "sketchId": null,\n "groupId": null,\n "value": 41378302.21403051\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"These will get loaded and used by the BenthicReefCard as the denominator value when calculating percent sketch overlap."}),"\n",(0,s.jsx)(n.admonition,{type:"note",children:(0,s.jsxs)(n.p,{children:["If at any point the process of using ",(0,s.jsx)(n.code,{children:"import:data"}),", ",(0,s.jsx)(n.code,{children:"precalc:data"})," or the ",(0,s.jsx)(n.code,{children:"projectClient"})," don't meet your needs, you are welcome to create your own separate workflow. As long as datasources get to the ",(0,s.jsx)(n.code,{children:"data/dist"})," directory for publishing, in the format (fgb, cog) and projection required (EPSG 4326 for vector, EPSG 6933 for raster) you can create your own solution."]})}),"\n",(0,s.jsx)(n.h3,{id:"world-geography",children:"World Geography"}),"\n",(0,s.jsxs)(n.p,{children:["You might have noticed in the precalculated metrics that they are assigned a geographyId of ",(0,s.jsx)(n.code,{children:"world"}),". ",(0,s.jsx)(n.code,{children:"Geographies"})," are a higher level feature of the framework that define polygon boundaries that serve a specfic purpose in your project. The main use case is to define planning boundaries for your project, if you have them."]}),"\n",(0,s.jsxs)(n.p,{children:["The default Geography for a new project is the ",(0,s.jsx)(n.code,{children:"world"})," geography, which establishes the entire world as your planning boundary. This is sufficient for your needs until you have a more specific planning boundary that you want to work with. For example you can clip your sketches and your data to a geography in order to report metrics for a specific geography. Since your data is already pre-clipped to the planning area, and there is only one planning area, you don't need to do anything more with this feature. You can just leave it to use the ",(0,s.jsx)(n.code,{children:"world"})," geography."]}),"\n",(0,s.jsxs)(n.p,{children:["Geographies are defined in ",(0,s.jsx)(n.code,{children:"project/geographies.json"}),". To learn more visit the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/concepts#geographies",children:"advanced concepts"})," page."]}),"\n",(0,s.jsx)(n.h3,{id:"add-metric-group",children:"Add Metric Group"}),"\n",(0,s.jsxs)(n.p,{children:["A metric group is a higher-level entity that defines a metric to be measured, for one or more classes of data. ",(0,s.jsx)(n.code,{children:"MetricGroup"})," ",(0,s.jsx)(n.strong,{children:"records"})," can defined in ",(0,s.jsx)(n.code,{children:"project/metrics.json"})," and accessed using the project client in your geoprocessing functions and reports."]}),"\n",(0,s.jsxs)(n.p,{children:["Let's create a metric group by first looking at the benthic dataset. It represents where multiple classes of benthic habitat are present - sand, rock, rubble. Each polygon is assigned with a single habitat type using the ",(0,s.jsx)(n.code,{children:"class"})," attribute and given a value of ",(0,s.jsx)(n.code,{children:"Sand"}),", ",(0,s.jsx)(n.code,{children:"Rock"}),", or ",(0,s.jsx)(n.code,{children:"Rubble"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Add the following metric group object to ",(0,s.jsx)(n.code,{children:"project/metrics.json"})," and save the file."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metricId": "benthicHabitat",\n "classKey": "class",\n "datasourceId": "benthic-rock",\n "classes": [\n {\n "classId": "Sand",\n "display": "Sand"\n },\n {\n "classId": "Rock",\n "display": "Rock"\n },\n {\n "classId": "Rubble",\n "display": "Rubble"\n }\n ]\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["This defines a ",(0,s.jsx)(n.code,{children:"benthicHabitat"})," metric that sources data from the ",(0,s.jsx)(n.code,{children:"benthic"})," datasource. The ",(0,s.jsx)(n.code,{children:"classKey"})," indicates this datasource has an attribute named ",(0,s.jsx)(n.code,{children:"class"})," used to identify which data class each polygon is a member of. 3 data classes are defined with a ",(0,s.jsx)(n.code,{children:"classId"})," serving as the unique identifier for the data class, and it also matches the value used in the data at the ",(0,s.jsx)(n.code,{children:"classKey"})," attribute."]}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about metric groups, visit the ",(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/concepts#metric-group",children:"advanced concepts"})," page."]}),"\n",(0,s.jsx)(n.h3,{id:"create-report-1",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a report that uses your metric group. Run the following command and answer the questions:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run create:report\n"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"? Type of report to create\nVector overlap report - calculates sketch overlap with vector datasources\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with benthic habitat\n? Select the metric group to report on\nbenthicHabitat\n\n\u2714 Created benthicHabitat report\n\u2714 Registered report assets in project/geoprocessing.json\n\nGeoprocessing function: src/functions/benthicHabitat.ts\nSmoke test: src/functions/benthicHabitatSmoke.test.ts\nReport component: src/components/BenthicHabitatCard.tsx\nStory generator: src/components/BenthicHabitatCard.example-stories.ts\n\nNext Steps:\n * 'npm test' to run smoke tests against your new geoprocessing function\n * 'npm run storybook' to view your new report with smoke test output\n * Add to a top-level report client or page when ready\n"})}),"\n",(0,s.jsx)(n.p,{children:"You should now have a geoprocessing function and card component ready to go that will iterate through your data classes and calculate/report area overlap with your sketch."}),"\n",(0,s.jsx)(n.h3,{id:"test-new-example-sketch",children:"Test New Example Sketch"}),"\n",(0,s.jsxs)(n.p,{children:["Now run ",(0,s.jsx)(n.code,{children:"npm run test"})," again look at the new smoke test output for your geoprocessing function in ",(0,s.jsx)(n.code,{children:"examples/output"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"It's very likely that none of your random sketchs overlapped with any benthic polygons and all display zero. Add the following example sketch that we know will overlap."}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/sketches/sketch2.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "type": "Feature",\n "properties": {\n "id": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "isCollection": false,\n "userAttributes": [\n {\n "label": "Type",\n "fieldType": "ChoiceField",\n "exportId": "TYPE",\n "value": "sketch"\n },\n {\n "label": "Notes",\n "value": "NOTES",\n "fieldType": "TextArea"\n }\n ],\n "sketchClassId": "3ac026ad-c3eb-471a-b6ad-58782aa5e949",\n "createdAt": "2024-11-26T02:48:33.985Z",\n "updatedAt": "2024-11-26T02:48:33.985Z",\n "name": "sketch2"\n },\n "geometry": {\n "type": "Polygon",\n "coordinates": [\n [\n [151.31665625673213, 7.749571426060996],\n [151.31665625673213, 5.925462431466443],\n [153.9861009666032, 5.925462431466443],\n [153.9861009666032, 7.749571426060996],\n [151.31665625673213, 7.749571426060996]\n ]\n ]\n },\n "id": "78f6e916-20f0-471e-a15e-6d632650cf68"\n}\n'})})]}),"\n",(0,s.jsxs)(n.p,{children:["Now ",(0,s.jsx)(n.code,{children:"npm run test"})," and you should now see non-zero output for each benthic class for the sketch2 example:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/output/sketch2/benthicHabitat.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metrics": [\n {\n "geographyId": "world",\n "metricId": "benthicHabitat",\n "classId": "Rock",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": null,\n "value": 11210186.968081,\n "extra": {\n "sketchName": "sketch2"\n }\n },\n {\n "geographyId": "world",\n "metricId": "benthicHabitat",\n "classId": "Rubble",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": null,\n "value": 11210186.968081,\n "extra": {\n "sketchName": "sketch2"\n }\n },\n {\n "geographyId": "world",\n "metricId": "benthicHabitat",\n "classId": "Sand",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": null,\n "value": 11210186.968081,\n "extra": {\n "sketchName": "sketch2"\n }\n }\n ]\n}\n'})})]}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report-1",children:"Add To Tab Report"}),"\n",(0,s.jsxs)(n.p,{children:["Next, add BenthicHabitatCard to a new ",(0,s.jsx)(n.strong,{children:"Habitat"})," page in TabReport. Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and replace the code with the following:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React, { useState } from "react";\nimport { useTranslation } from "react-i18next";\nimport {\n SegmentControl,\n ReportPage,\n SketchAttributesCard,\n} from "@seasketch/geoprocessing/client-ui";\nimport Translator from "../components/TranslatorAsync.js";\nimport { SimpleCard } from "../components/SimpleCard.js";\nimport { CoralReefCard } from "../components/CoralReefCard.js";\nimport { BenthicHabitatCard } from "../components/BenthicHabitatCard.js";\n\nconst BaseReport = () => {\n const { t } = useTranslation();\n const segments = [\n { id: "OVERVIEW", label: t("Overview") },\n { id: "BIOLOGICAL", label: t("Biological") },\n { id: "HABITAT", label: t("Habitat") },\n ];\n const [tab, setTab] = useState < string > "OVERVIEW";\n\n return (\n <>\n
\n setTab(segment)}\n segments={segments}\n />\n
\n \n \n \n \n );\n};\n\n// Named export loaded by storybook\nexport const TabReport = () => {\n return (\n \n \n \n );\n};\n\n// Default export lazy-loaded by production ReportApp\nexport default TabReport;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard add to page",src:t(2187).A+"",width:"1464",height:"1299"})}),"\n",(0,s.jsx)(n.h2,{id:"seamount-report",children:"Seamount Report"}),"\n",(0,s.jsx)(n.p,{children:"Next you will create a report summarizing sketch overlap with areas that are within 40k kilometers of a seamount, which is an underwater mountain that rises at least 1,000 meters above the surrounding ocean. Here is an image of these areas displayed in QGIS within the Micronesian EEZ boundary."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Seamount",src:t(37720).A+"",width:"1080",height:"607"})}),"\n",(0,s.jsx)(n.p,{children:"The seamount dataset is in a raster format. It is a binary raster such that each raster cell has a value of zero or one. Rasters are like digital images, in that each pixel or cell represents a specific rectangular area of the world and gives it a value. This particular dataset is a binary raster. Each cell has a value of zero or one. A one value indicates that the cell is within 40 kilemeters of a seamount, a zero value indicates it is not."}),"\n",(0,s.jsx)(n.h3,{id:"import-data-2",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"Next you will import this seamount raster:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/seamounts_40km.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nseamounts_40km\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n\nAdding seamounts_40km record in project/datasources.json file\n"})}),"\n",(0,s.jsx)(n.h3,{id:"precalc-data-2",children:"Precalc Data"}),"\n",(0,s.jsxs)(n.p,{children:["Now, precalculating metrics for a cloud-optimized geotiff raster is a little more complicated than for a flatgeobuf. For this reason, we want to make use of the built-in ",(0,s.jsx)(n.code,{children:"precalc"})," feature. Run the precalc command as follow:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run precalc:data\n\n? Do you want to precalculate only a subset?\nYes, by datasource\n\n? Which datasources do you want to precalculate? (will precalculate for all geographies)\nLet me choose\n\n? What datasources would you like to precalculate? (select as many as you want)\nseamounts_40km - raster\n\nPrecalculating datasource seamounts_40km for geography world\n1 datasource/geography combinations precalculated successfully\n"})}),"\n",(0,s.jsx)(n.p,{children:"Now look at project/precalc.json. You should see 4 new precalculated metrics for octocorals:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"valid"})," - count of all raster cells with value (not nodata cells)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"count"})," - count of all cells in the raster, both valid and invalid (nodata)"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"sum"})," - sum of value of all valid cell values in raster"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"area"})," - area of valid cells in raster in square meters"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:' {\n "geographyId": "world",\n "metricId": "area",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 400949272332.4638\n },\n {\n "geographyId": "world",\n "metricId": "count",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 18748\n },\n {\n "geographyId": "world",\n "metricId": "sum",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 1365\n },\n {\n "geographyId": "world",\n "metricId": "valid",\n "classId": "seamounts_40km-total",\n "sketchId": null,\n "groupId": "band-0",\n "value": 1365\n }\n'})}),"\n",(0,s.jsx)(n.p,{children:"The area calculation is made possible by the fact that the raster is in an equal area projection, making all raster cells a consistent size. Area is calculated as:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"area = raster cell width in meters x cell height in meters x number of valid cells"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Notice that the precalculated ",(0,s.jsx)(n.code,{children:"sum"})," and ",(0,s.jsx)(n.code,{children:"valid"})," values are the same at ",(0,s.jsx)(n.code,{children:"1365"}),". That is because the valid cells all have a value of 1 and the sum of the values in valid cells is the same as the count of valid cells."]}),"\n",(0,s.jsx)(n.h3,{id:"add-objective",children:"Add Objective"}),"\n",(0,s.jsxs)(n.p,{children:["You will also use the built-in framework support for objectives. It allows you to configure a target value and measure progress toward it in a report. Open ",(0,s.jsx)(n.code,{children:"project/objectives.json"})," and add the following objective:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'[\n {\n "objectiveId": "seamounts",\n "shortDesc": "Seamounts 30%",\n "target": 0.3,\n "countsToward": {}\n }\n]\n'})}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"countsToward"})," property isn't necessary for this sample project but it allows you to indicate which of one or more categories count towards meeting the target. For example if you allow a user to assign a protection level to their sketch, you can allow only the two highest levels of protection to count toward meeting the target."]}),"\n",(0,s.jsx)(n.p,{children:"Example (do not add):"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "countsToward": {\n "Full Protection": "yes",\n "High Protection": "yes",\n "Low Protection": "no"\n }\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"add-metric-group-1",children:"Add Metric Group"}),"\n",(0,s.jsx)(n.p,{children:"The last bit of preparation is you will create a metric group. This will allow you to easily access your precalc metrics and your objective in your report card."}),"\n",(0,s.jsxs)(n.p,{children:["Create a seamount metric group that uses the objective in ",(0,s.jsx)(n.code,{children:"project/metrics.json"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metricId": "seamounts",\n "datasourceId": "seamounts_40km",\n "classes": [\n {\n "classId": "seamounts",\n "display": "Seamounts",\n "objectiveId": "seamounts"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"create-report-2",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"Now create a blank seamount report"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"npm run create:report\n\n? Type of report to create\nBlank report - empty report ready to build from scratch\n\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with seamount raster\n\n? Title for this report, in camelCase\nseamounts\n\n\u2714 Created seamounts report\n\u2714 Registered report assets in project/geoprocessing.json\n\nGeoprocessing function: src/functions/seamounts.ts\nSmoke test: src/functions/seamountsSmoke.test.ts\nReport component: src/components/SeamountsCard.tsx\nStory generator: src/components/SeamountsCard.example-stories.ts\n\nNext Steps:\n * 'npm test' to run smoke tests against your new geoprocessing function\n * 'npm run storybook' to view your new report with smoke test output\n * Add to a top-level report client or page when ready\n"})}),"\n",(0,s.jsxs)(n.p,{children:["This creates both a geoprocessing function and report card, and registers them in ",(0,s.jsx)(n.code,{children:"project/geoprocessing.json"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"src/functions/seamounts.ts"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code answer the following questions:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"What percentage of area within 40 kilometers of a seamount is within the current sketch polygon (or sketch collection polygons)?"}),"\n",(0,s.jsx)(n.li,{children:"If it is a sketch collection, does it meet the planning objective of protecting 30% of all area within 40 kilometers of a seamount?"}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/functions/seamounts.ts"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {\n Sketch,\n SketchCollection,\n Polygon,\n MultiPolygon,\n GeoprocessingHandler,\n DefaultExtraParams,\n loadCog,\n rasterStats,\n toSketchArray,\n StatsObject,\n} from "@seasketch/geoprocessing";\nimport project from "../../project/projectClient.js";\n\nexport interface SeamountResult {\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n childSketchStats: {\n /** Name of the sketch */\n name: string;\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n }[];\n}\n\n/**\n * seamounts for use with create:report command\n */\nexport async function seamounts(\n sketch:\n | Sketch\n | SketchCollection,\n extraParams: DefaultExtraParams = {},\n): Promise {\n const metricGroup = project.getMetricGroup("seamounts");\n const ds = project.getMetricGroupDatasource(metricGroup);\n const url = project.getDatasourceUrl(ds);\n const raster = await loadCog(url);\n\n // Add analysis code\n const stats = await rasterStats(raster, {\n feature: sketch,\n stats: ["sum"],\n });\n\n let childSketchStats: SeamountResult["childSketchStats"] = [];\n if (sketch.properties.isCollection) {\n childSketchStats = await Promise.all(\n toSketchArray(sketch).map(async (childSketch) => {\n const childStats = await rasterStats(raster, {\n feature: childSketch,\n stats: ["sum"],\n });\n return {\n name: childSketch.properties.name,\n stats: childStats,\n };\n }),\n );\n }\n\n // Custom return type\n return {\n stats,\n childSketchStats,\n };\n}\n\nexport default new GeoprocessingHandler(seamounts, {\n title: "seamounts",\n description: "Calculate sketch overlap with seamount data",\n timeout: 60, // seconds\n memory: 1024, // megabytes\n executionMode: "async",\n});\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Notice the more sophisticated result payload. It's designed to return one or more raster stats for the top-level sketch, and one or more child sketch stats if it's a sketch collection. This gives the structure some room to grow if you want to produce multiple raster stats for each sketch and use them in this report."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export interface SeamountResult {\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n childSketchStats: {\n /** Name of the sketch */\n name: string;\n /** Sum of valid seamount raster cells overlapping with sketch */\n stats: StatsObject[];\n }[];\n}\n"})}),"\n",(0,s.jsx)(n.p,{children:"Then it fetches the metadata for the seamounts raster, ready to read data from it."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'const metricGroup = project.getMetricGroup("seamounts");\nconst ds = project.getMetricGroupDatasource(metricGroup);\nconst url = project.getDatasourceUrl(ds);\nconst raster = await loadCog(url);\n'})}),"\n",(0,s.jsx)(n.p,{children:"Now let's look at the analysis code. If it's a sketch collection, sum the value of all rasters cells that overlap with each child sketch."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// If sketch is collection, sum the value of raster cells that overlap with each child sketch\nlet childSketchStats: SeamountResult["childSketchStats"] = [];\nif (sketch.properties.isCollection) {\n childSketchStats = await Promise.all(\n toSketchArray(sketch).map(async (childSketch) => {\n const childStats = await rasterStats(raster, {\n feature: childSketch,\n stats: ["sum"],\n });\n return {\n name: childSketch.properties.name,\n stats: childStats,\n };\n }),\n );\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"Next, sum the value of raster cells that overlap the entire top-level sketch or sketch collection and return the final result payload."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'// Calculate overall sketch area\nconst stats = await rasterStats(raster, {\n feature: sketch,\n stats: ["sum"],\n});\n\n// Custom return type\nreturn {\n stats,\n childSketchStats,\n};\n'})}),"\n",(0,s.jsx)(n.p,{children:"If this is a sketch collection, you might notice that an optimization would be to sum the value of all the child sketches to get the overall sum for the whole collection. That is true, if your sketches are guaranteed not to overlap. In practice, sketches often can and do overlap in a planning process. The planning process may even allow it such as areas of higher protection within areas of lower protection. This is an optimization left to you."}),"\n",(0,s.jsx)(n.p,{children:"Now run tests"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm test\n"})}),"\n",(0,s.jsx)(n.p,{children:"Confirm that the output looks as expected."}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"examples/output/sketchCollection1/seamounts.json"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:'{\n "stats": [\n {\n "sum": 5\n }\n ],\n "childSketchStats": [\n {\n "name": "sketchCollection1-1",\n "stats": [\n {\n "sum": 1\n }\n ]\n },\n {\n "name": "sketchCollection1-2",\n "stats": [\n {\n "sum": 1\n }\n ]\n },\n {\n "name": "sketchCollection1-3",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-4",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-5",\n "stats": [\n {\n "sum": 1\n }\n ]\n },\n {\n "name": "sketchCollection1-6",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-7",\n "stats": [\n {\n "sum": 2\n }\n ]\n },\n {\n "name": "sketchCollection1-8",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-9",\n "stats": [\n {\n "sum": 0\n }\n ]\n },\n {\n "name": "sketchCollection1-10",\n "stats": [\n {\n "sum": 0\n }\n ]\n }\n ]\n}\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Now, open src/components/SeamountsCard.tsx."}),"\n",(0,s.jsx)(n.p,{children:"You will now update this code to:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Display the % of total area within 40 kilometers of a seamount captured within this sketch"}),"\n",(0,s.jsxs)(n.li,{children:["If it is a sketch collection","\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Indicate whether the objective of protecting 30% of all area within 40 kilometers of a seamount has been met."}),"\n",(0,s.jsx)(n.li,{children:"Display a collapsible area with a breakdown of the area and % area of seamount within each individual sketch in the collection."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Replace the existing code with the following:"}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/components/SeamountCard.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-javascript",children:'import React from "react";\nimport { Trans, useTranslation } from "react-i18next";\nimport {\n Collapse,\n HorizontalStackedBar,\n ObjectiveStatus,\n ResultsCard,\n Table,\n useSketchProperties,\n VerticalSpacer,\n} from "@seasketch/geoprocessing/client-ui";\nimport {\n percentWithEdge,\n roundDecimalFormat,\n squareMeterToKilometer,\n} from "@seasketch/geoprocessing/client-core";\nimport project from "../../project/projectClient.js";\nimport { SeamountResult } from "../functions/seamounts.js";\n\nexport const SeamountsCard = () => {\n const { t } = useTranslation();\n const [{ isCollection }] = useSketchProperties();\n const titleTrans = t("SeamountCard title", "SeamountCard");\n\n // Get precalc total sum\n const curGeography = project.getGeographyById("world", {\n fallbackGroup: "default-boundary",\n });\n const metricGroup = project.getMetricGroup("seamounts", t);\n const precalcMetrics = project.getPrecalcMetrics(\n metricGroup,\n "sum",\n curGeography.geographyId,\n );\n const sumTotal = precalcMetrics[0].value;\n\n // Get objective target\n const target = project.getObjectiveById("seamounts").target;\n\n return (\n <>\n \n {(data: SeamountResult) => {\n console.log("precalc", precalcMetrics);\n console.log("data", data);\n\n const sumPerc = data.stats[0].sum! / sumTotal;\n const sumPercString = percentWithEdge(sumPerc);\n const targetPercString = percentWithEdge(target);\n\n const meetsObjective = sumPerc >= target;\n\n // Adjust values for chart to be in range 0-100\n const chartRows = [[[sumPerc * 100]]];\n\n const sketchStr = isCollection ? t("sketch collection") : t("sketch");\n\n const meetsOrNotElement = meetsObjective ? (\n \n This {{ sketchStr }} meets the objective of protecting{" "}\n {{ targetPercString }} of area within 40 km of a seamount.\n \n ) : (\n \n This {{ sketchStr }} does not meet the objective of protecting{" "}\n {{ targetPercString }} of area within 40 km of a seamount.\n \n );\n\n return (\n <>\n

\n \n {{ sumPercString }} of all areas within 40 kilometers of a\n seamount is within this {{ sketchStr }}.\n \n

\n {isCollection && (\n \n )}\n\n \n percentWithEdge(value / 100)}\n max={4}\n target={20}\n targetValueFormatter={(targetValue) => (\n \n Target {{ targetValue: percentWithEdge(targetValue / 100) }}\n \n )}\n rowConfigs={[\n {\n title: t("Total seamounts"),\n },\n ]}\n blockGroupNames={[]}\n blockGroupStyles={[{ backgroundColor: "#64c2a6" }]}\n />\n {isCollection && (\n \n \n roundDecimalFormat(\n squareMeterToKilometer(row.stats[0].sum),\n ),\n },\n {\n Header: t("% Seamount within Sketch"),\n accessor: (row: any) =>\n percentWithEdge(row.stats[0].sum / sumTotal),\n },\n ]}\n />\n \n )}\n \n );\n }}\n
\n \n );\n};\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"There are multiple things worth noticing:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"the project client is getting more use, to access precalc metrics and the objective target."}),"\n",(0,s.jsx)(n.li,{children:"the code to access the result values is more complex than for the reef report, because the structure of the result data is more complex."}),"\n"]}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report-2",children:"Add To Tab Report"}),"\n",(0,s.jsxs)(n.p,{children:["Next, add SeamountsCard to the ",(0,s.jsx)(n.strong,{children:"Habitat"})," page in TabReport. Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and insert the following at the appropriate places:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'import { SeamountsCard } from "../components/SeamountsCard.js";\n\n;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Seamount add to page",src:t(38223).A+"",width:"1474",height:"1126"})}),"\n",(0,s.jsx)(n.h3,{id:"data-complexity",children:"Data Complexity"}),"\n",(0,s.jsx)(n.p,{children:"Results can get even more complex than the last report. Imagine if a report needed to calculate a metric with 10 different classes of data. And each sketch can be assigned to 1 of 4 different protection levels. The planning process is also split out into 3 different subregions. Now imagine you need to calculate metrics for every combination of data class, protection level, and subregion. How would you design the structure of your result to accommodate the data? How would you do it in a way that is flexible and reusable so that components of the framework can build on it?"}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"Metric"})," data type is designed to accommodate this type of multi-dimensional data. You see a glimpse of it in the precalc output, and in the Coral Reef report. Each ",(0,s.jsx)(n.code,{children:"Metric"})," object represents a single measurement/value for one or more dimensions of data. A simple array of these Metric objects can represent your entire result payload."]}),"\n",(0,s.jsxs)(n.p,{children:["Example of a single Metric ",(0,s.jsx)(n.code,{children:"coralspecies"}),", that measures a sketches overlap with data class ",(0,s.jsx)(n.code,{children:"blackcoral"}),", in ",(0,s.jsx)(n.code,{children:"subregion 1"}),", where the sketch is assigned ",(0,s.jsx)(n.code,{children:"full protection"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "geographyId": "subregion1",\n "metricId": "coralspecies",\n "classId": "blackcoral",\n "sketchId": "78f6e916-20f0-471e-a15e-6d632650cf68",\n "groupId": "full_protection",\n "value": 3,\n "extra": {\n "sketchName": "sketch2"\n }\n}\n'})}),"\n",(0,s.jsxs)(n.p,{children:["Multiple pieces of this framework know how to work with ",(0,s.jsx)(n.code,{children:"Metrics"})," including:"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"precalc:data"})}),"\n",(0,s.jsxs)(n.li,{children:["high-level spatial analysis functions like ",(0,s.jsx)(n.code,{children:"rasterMetrics"})," and ",(0,s.jsx)(n.code,{children:"overlapFeatures"})]}),"\n",(0,s.jsxs)(n.li,{children:["UI components like ",(0,s.jsx)(n.code,{children:"ClassTable"})," and ",(0,s.jsx)(n.code,{children:"SketchClassTable"})]}),"\n",(0,s.jsxs)(n.li,{children:["helper functions like ",(0,s.jsx)(n.code,{children:"firstMatchingMetric"}),", ",(0,s.jsx)(n.code,{children:"toPercentMetric"})," and ",(0,s.jsx)(n.code,{children:"sortMetrics"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"coral-species-report",children:"Coral Species Report"}),"\n",(0,s.jsx)(n.p,{children:"This last report will calculate sketch overlap with 3 difference species of coral."}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"3 corals",src:t(88318).A+"",width:"1126",height:"600"})}),"\n",(0,s.jsx)(n.h3,{id:"import-data-3",children:"Import Data"}),"\n",(0,s.jsx)(n.p,{children:"First, we'll import the datasets. There are three binary rasters, each has cells with a value of zero or one. Where there is a one value, the species is predicted to be present."}),"\n",(0,s.jsx)(n.p,{children:"Import the datasets as follow:"}),"\n",(0,s.jsx)(n.p,{children:"Black Coral:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/blackcoral.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\nblackcoral\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n"})}),"\n",(0,s.jsx)(n.p,{children:"Cold Water Coral:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/coldwatercoral.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\ncoldwatercoral\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n"})}),"\n",(0,s.jsx)(n.p,{children:"Octocoral:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run import:data\n\n? Type of data?\nRaster\n\n? Enter path to src file (with filename)\ndata/src/octocoral.tif\n\n? Choose unique datasource name (a-z, A-Z, 0-9, -, _), defaults to filename\noctocoral\n\n? Select raster band to import\n1\n\n? What type of measurement is used for this raster data?\nQuantitative - cell value (number) represents a measurement of a single thing\n"})}),"\n",(0,s.jsx)(n.h3,{id:"precalc",children:"Precalc"}),"\n",(0,s.jsx)(n.p,{children:"Now precalculate metrics for the raster."}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"npm run precalc:data\n\n? Do you want to precalculate only a subset?\nYes, by datasource\n\n? Which datasources do you want to precalculate? (will precalculate for all geographies)\nLet me choose\n\n? What datasources would you like to precalculate? (select as many as you want)\nblackcoral - raster\ncoldwatercoral - raster\noctocoral - raster\n\n3 datasource/geography combinations precalculated successfully\n"})}),"\n",(0,s.jsx)(n.h3,{id:"add-metric-group-2",children:"Add Metric Group"}),"\n",(0,s.jsxs)(n.p,{children:["Now define a metric group in ",(0,s.jsx)(n.code,{children:"project/metrics.json"})," consisting of three classes, one for each type of coral, each pointing to the appropriate datasource at the class level:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "metricId": "coralspecies",\n "classes": [\n {\n "datasourceId": "blackcoral",\n "classId": "blackcoral",\n "display": "Black Coral",\n "objectiveId": "blackcoral"\n },\n {\n "datasourceId": "coldwatercoral",\n "classId": "coldwatercoral",\n "display": "Cold Water Corals",\n "objectiveId": "coldwatercoral"\n },\n {\n "datasourceId": "octocoral",\n "classId": "Octocoral",\n "display": "Octocoral",\n "objectiveId": "octocoral"\n }\n ]\n}\n'})}),"\n",(0,s.jsx)(n.h3,{id:"add-objective-1",children:"Add Objective"}),"\n",(0,s.jsxs)(n.p,{children:["Open ",(0,s.jsx)(n.code,{children:"project/objectives.json"})," and add an objective for each data class:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:' {\n "objectiveId": "blackcoral",\n "shortDesc": "Black Coral 15%",\n "target": 0.15,\n "countsToward": {}\n },\n {\n "objectiveId": "coldwatercoral",\n "shortDesc": "Cold Water Coral 25%",\n "target": 0.25,\n "countsToward": {}\n },\n {\n "objectiveId": "octocoral",\n "shortDesc": "Octocoral 35%",\n "target": 0.35,\n "countsToward": {}\n }\n'})}),"\n",(0,s.jsx)(n.h3,{id:"create-report-3",children:"Create Report"}),"\n",(0,s.jsx)(n.p,{children:"Now create the report:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-text",children:"npm run create:report\n\n? Type of report to create\nRaster overlap report - calculates sketch overlap with raster datasources\n\n? Describe what this reports geoprocessing function will calculate (e.g. Calculate sketch overlap with boundary polygons)\nCalculate sketch overlap with coral species\n\n? Select the metric group to report on\ncoralspecies\n\n? Type of raster data\nQuantitative - Continuous variable across the raster\n\n? Statistic to calculate\nsum - sum of value of valid cells overlapping with sketch\n\n\u2714 Created coralspecies report\n\u2714 Registered report assets in project/geoprocessing.json\n"})}),"\n",(0,s.jsx)(n.p,{children:"Then run smoke tests:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run test\n"})}),"\n",(0,s.jsx)(n.h3,{id:"add-to-tab-report-3",children:"Add To Tab Report"}),"\n",(0,s.jsxs)(n.p,{children:["Next, add CoralspeciesCard to the ",(0,s.jsx)(n.strong,{children:"Biological"})," page in TabReport. Open ",(0,s.jsx)(n.code,{children:"src/clients/TabReport.tsx"})," and insert the following at the appropriate places:"]}),"\n",(0,s.jsxs)(a,{children:[(0,s.jsx)("summary",{children:"src/clients/TabReport.tsx"}),(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-jsx",children:'import { CoralspeciesCard } from "../components/CoralspeciesCard.js";\n\n;\n'})})]}),"\n",(0,s.jsx)(n.p,{children:"Storybook should update on save and display the following:"}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"CoralReefCard add to page",src:t(16365).A+"",width:"1459",height:"1041"})}),"\n",(0,s.jsx)(n.h3,{id:"language-translation-1",children:"Language Translation"}),"\n",(0,s.jsx)(n.p,{children:"To support more languages than just English, start with extracting all of the latest strings from your reports:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"npm run extract:translation\n"})}),"\n",(0,s.jsxs)(n.p,{children:["You will want to then look at the git changes produced in ",(0,s.jsx)(n.code,{children:"src/i18n/lang/en/translation.json"})," and make adjustments to your reports until the extract strings look right."]}),"\n",(0,s.jsx)(n.p,{children:"To learn more visit the\n[LINK TO TRANSLATION DOC]"}),"\n",(0,s.jsx)(n.h2,{id:"create-github-project",children:"Create Github Project"}),"\n",(0,s.jsxs)(n.p,{children:["At this point, you can push your code from your local git repository to a remote repository on Github. First, ",(0,s.jsx)(n.a,{href:"https://github.com/new",children:"create a remote Github repository"})," called ",(0,s.jsx)(n.code,{children:"fsm-reports-test"}),". Leave it empty, do not choose to initialize with a template, README, gitignore, or LICENSE."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"git remote add origin https://github.com/PUT_YOUR_GITHUB_ORG_OR_USERNAME_HERE/fsm-reports-test.git\ngit push -u origin main\n"})}),"\n",(0,s.jsx)(n.p,{children:"You should see your files successfuly pushed to Github."}),"\n",(0,s.jsx)(n.p,{children:"It may ask you if it can use the Github extension to sign you in using Github. It will open a browser tab and communicate with the Github website. If you are already logged in there, then it should be done quickly, otherwise it may have you login to Github."}),"\n",(0,s.jsx)(n.h2,{id:"whats-next",children:"What's Next"}),"\n",(0,s.jsx)(n.p,{children:"You've now completed the sample tutorial. Next steps include:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Further customize these reports to suit your needs. Look at the storybook ",(0,s.jsx)(n.a,{href:"/storybook",children:"component libary"})," to see what is available."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/newproject",children:"Create a new project"}),", deploy it to a production environment, publish your data, and integrate your reports with SeaSketch."]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.a,{href:"/geoprocessing/docs/next/tutorials/existingproject",children:"Setup an existing project"}),", and re-deploy it."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},16365:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/3-coral-species-add-page-da3d51726173469ff243233b7618ef3a.jpg"},88318:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/3-corals-map-07fe79be9d94f5eb8383930271dbed3c.jpg"},13065:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/benthic-habitat-map-0fb7d81be6181cf1ae11e0ce7db0a9f9.jpg"},2187:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/benthic-habitats-add-page-821de9a1cb7c036d59d6defc10f23460.jpg"},62848:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/coral-reef-card-add-to-page-89529c6834ef771d4a06d72ac0137b0f.jpg"},97287:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/coral-reef-card-collection-42587097890cc8cb14f0276d105af2b1.jpg"},8847:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/coral-reef-card-sketch-a752ef560d2ef81510dcc024f968b2b3.jpg"},81465:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/eez-bbox-eaed173f82fe29cdd6c06782e621ff43.jpg"},94616:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/eez-with-land-a17837dd0ade1b26dd289529dc938a38.jpg"},41538:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/preprocessing-after-e56cf27fb55e189a0e64f9f57b9bf08c.jpg"},58667:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/preprocessing-before-9d8ee3df0ac13b3e9f47dec8a2dc8d11.jpg"},35162:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/reef-extent-c5b22beda714f8f21941e25144be67f2.jpg"},38223:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/seamount-add-page-cab8cc26896f4fba2d2bb5879d19a6c7.jpg"},37720:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/seamount-map-dc1c4407048d2b89867320ad14dcf8b7.jpg"},51899:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/simple-card-table-fb0438e81de84b2fabe0ab3a176cb0c5.jpg"},44424:(e,n,t)=>{t.d(n,{A:()=>s});const s=t.p+"assets/images/simple-card-view-baa6031f291f646309b58f5edcfe6c9a.jpg"},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>i});var s=t(96540);const r={},a=s.createContext(r);function o(e){const n=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.20e00f7f.js b/assets/js/runtime~main.2da3576f.js similarity index 99% rename from assets/js/runtime~main.20e00f7f.js rename to assets/js/runtime~main.2da3576f.js index 0069186cd..ecdbe3d77 100644 --- a/assets/js/runtime~main.20e00f7f.js +++ b/assets/js/runtime~main.2da3576f.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,c,b,f,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,b,f)=>{if(!c){var d=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(f,d),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({13:"583603b7",34:"d3fb262d",38:"449e4dc6",42:"9fe84de8",306:"58a05d9a",339:"9b757d58",511:"6cb9b8c5",587:"df5aa7dd",749:"b1abec39",784:"d10f84d4",801:"d466d172",855:"42ec3285",1262:"9b1a5c5e",1378:"715df43e",1411:"6e8a13b0",2105:"cdec8630",2748:"822bd8ab",2915:"ef57aa4c",3053:"5a77b0d8",3098:"533a09ca",3575:"c5b77b19",3783:"20c30c76",4060:"296a3842",4169:"b0fe2760",4186:"838fb0b0",4317:"c9716e5b",4390:"ad5d9006",4562:"13245b4f",4644:"065977f7",4713:"4ced9953",4748:"19bc8eef",4763:"6069dc02",4965:"678d861b",4969:"f71bca15",5174:"e442797e",5277:"a9e39b96",5558:"bcb896d7",5562:"9b2427a8",5635:"8cedeea9",5814:"76f1a969",5820:"1020312d",5899:"a09c2993",5920:"7ddc1705",6089:"de0ec296",6507:"18ca75cf",6650:"204e117e",6673:"9709e7cb",6846:"8f95f66c",6949:"3ff52dca",7251:"91b6783f",7336:"76d46aba",7435:"9f83c6f7",7778:"1443f20a",7955:"339f6315",8016:"64dbaf0f",8326:"b79706ee",8465:"6efe857f",8489:"a58f4723",8649:"9d05cd7d",8745:"5c25e40f",9035:"99df31ff",9067:"ec19e0a6",9159:"3bb712cb",9235:"d761df68",9248:"a5000089",9430:"60437e04",9451:"2f4d29f9",9462:"c0d9604c",9647:"5e95c892",9670:"296a08bc",9898:"81f057ea",10045:"cdea44ef",10305:"28543a21",10317:"85ddfa3e",10433:"311ab9cf",10535:"c8f327b7",10578:"e37e0948",11093:"26a8165c",11149:"19c161ed",11407:"94e3e0e3",11431:"b35a4bab",11807:"a6fab790",12094:"d6d926f4",12099:"d92ca8f5",12443:"d8107dcc",12577:"cce52400",12596:"f3e32ae2",12744:"9a50c92d",12903:"a1c3829e",13095:"922b37a4",13298:"4c98ba2d",13358:"d0b4847b",13579:"ca83acbe",13615:"e7cfc72c",13618:"0e930aeb",13786:"35709b3d",13829:"46c06872",14160:"ca1aa266",14646:"f46cf07e",14856:"2b163177",15040:"452aa042",15448:"1cbe4596",15626:"672ed64a",15908:"96c6ab62",16100:"5bf3aef7",16182:"cd280042",16253:"8bc8919d",16436:"ef6674fe",16824:"5b725301",16844:"d39d81b4",16966:"cb6adff9",16978:"d3818960",17063:"ceb71161",17284:"3041404c",17288:"cf8d0fcc",17530:"05da8984",17608:"d6fc3522",17631:"660b2a78",17710:"4a4fa746",17840:"f3d56391",18137:"ecfed5ec",18185:"5faf1f47",18232:"057a4864",18298:"6f53a749",18331:"a6270d48",18401:"17896441",19018:"21b0cdf7",19029:"a156e6ac",19202:"8b0f1c4e",19413:"5be9832d",19669:"f64fce26",19761:"673ec543",19788:"b75d1943",20100:"e276cf42",20552:"5a69df3e",20647:"a2b365cf",20673:"d3fa14af",20942:"04b9c63d",21051:"f47f5b5c",21241:"a74d2383",21319:"34cab964",21489:"5c52f6e8",21895:"e6688bcd",21919:"f567390f",22166:"a73c2a00",22248:"6aa3a25b",22308:"28bea1e7",22482:"3267b9a3",22663:"0553e70a",22720:"2bf4ec9b",22747:"295604f4",22798:"00120f28",22910:"18b3c895",23120:"9bc477a6",23543:"549db752",23596:"42c64eb9",23754:"aafb361c",23940:"3885774a",23970:"ab71a14f",24155:"87ef4734",24652:"f5720a8f",24736:"e44a2883",25030:"79d1a076",25060:"b4698576",25072:"4dd4eb46",25134:"3ff000ec",25435:"7a0e7b59",25910:"54a3c5db",26043:"f183e07b",26126:"77861e5d",26833:"37a91261",26945:"cc189fd2",26968:"51c27797",27055:"3374161e",27360:"0b8ab3bc",27375:"58ef7c00",27417:"a1b14e0f",27479:"406590f2",27521:"6884bd1a",27584:"8e52731f",27606:"49257947",27630:"bed62a7f",28524:"dba81e08",28590:"73e979b3",28639:"18f8d593",28641:"2f97ff33",28898:"11eaec78",29181:"7b202e13",29295:"c6aca044",29305:"3223cc95",29369:"60f65e51",29559:"a067ac6d",29755:"d3bb98d0",29965:"e9a0ef15",30068:"bd00d4f3",30250:"0cc7d840",30326:"5fd2ca4b",30343:"636e82b2",30603:"936e820e",30648:"a03c5edd",30683:"7a5b6a82",31046:"ffe5d85d",31073:"3465e32b",31145:"fe77d560",31149:"76339d26",31386:"6b810897",31387:"c533f048",31429:"c5879d20",31437:"9f1c9cfe",31493:"8ebd9ccd",31681:"bb47ce6c",31904:"5072f88a",32218:"57b14e43",32222:"301e080f",32355:"b4ad6a28",32379:"af605570",32387:"7b2fdb8a",32641:"11b8c77a",32839:"ab0eb107",32897:"351342bb",32952:"efff1481",33137:"27580d35",33777:"b705015d",33794:"a745502a",33967:"9a64398d",34016:"6d296574",34321:"51c12c5f",34426:"d834047e",34435:"dc7cfb41",34467:"cf65afab",34583:"1df93b7f",34620:"5eed5665",34625:"e2c2a025",34639:"8517b31c",34761:"06d51d06",34872:"e8d3f6f9",35402:"c4be7b44",35466:"ea0e90af",35563:"3f655634",35742:"aba21aa0",35894:"1d18b285",36043:"d7790313",36077:"753493e0",36439:"51cf6fc8",36614:"427578a9",36640:"970de22d",36811:"aefb526e",36894:"404c31a1",36984:"7d6c9398",37041:"b260a133",37138:"3603a0ea",37341:"8f797c1e",37385:"000edf12",37587:"36d9a104",37602:"30330b8d",37627:"6e26a28f",37785:"126c431b",37879:"c0953c5f",37906:"6cfde557",37947:"1bad9c20",38096:"7bf88be3",38130:"98b8dd79",38343:"1c396d99",38743:"3eb03649",38803:"59a1ce31",38811:"0d00f88f",39009:"facd25cf",39014:"58297ce8",39019:"9279e2ec",39046:"35b544ea",39057:"a273324b",39092:"5a71cf91",39339:"29b28278",39546:"e88f1506",39588:"470cb80a",39598:"8ee52ef7",39874:"ab208bf2",39928:"4e336666",40632:"57e60529",40650:"6d612f6b",40910:"9312cbc6",41039:"63b9acb4",41130:"69e9e61b",41321:"3e19de0e",41382:"3f189bf2",41465:"fb7e9e31",41604:"10852366",41945:"a41bcd85",41954:"7c49023e",41998:"e5e12b34",42280:"7e75397b",42292:"f0480ff1",42477:"30837423",42666:"3db66c4a",42792:"a3e64e69",42819:"27bf54aa",42970:"277b12d2",43101:"c0295fc4",43107:"f0ec41e8",43155:"2737f74b",43252:"99fc20f8",43333:"6a3047b1",43359:"ac5c11db",43527:"bda60f6c",43853:"88724c8f",43891:"c0b36077",43988:"47691619",44020:"841863c4",44099:"a698f61a",44125:"093ef478",44291:"83a76d74",44362:"7ba7cfc0",44512:"9bdb307d",44514:"cb42257b",44717:"597c813f",44849:"6dd78e99",44919:"594c1392",45131:"fa1e3c90",45140:"e602906e",45152:"23e66fc6",45182:"260793df",45189:"b19c47a1",45372:"0be6ddf6",45449:"4f92df94",45547:"9bd9506e",45560:"60d03e30",45691:"47db13d9",45744:"aa37aa09",45848:"0b237cae",46138:"206aceb6",46187:"3508ba7b",46188:"ee7f1ebf",46808:"e357afdb",46904:"835f7f11",46906:"08877af4",46977:"45bfc0b8",47006:"b5927a7f",47024:"81113f50",47102:"f67fc0f1",47182:"5a573055",47419:"4cc3c8d8",47420:"d299e6a5",47467:"c6fb0e59",47902:"4c0b429a",47964:"cae4d725",48095:"091b5047",48213:"3aa06708",48296:"1b5fdf8a",48369:"6e02bca9",48589:"ff31178b",48623:"a1982cf6",48702:"724437c1",48903:"d8e024af",49167:"42124e5a",49176:"54ad080c",49197:"8a5d79c1",49205:"c9f6b581",49280:"d3d9fe11",49840:"a39f65f3",49981:"1c94f36b",50105:"0e8eb251",50232:"ed4fae79",50332:"fe853a6c",50566:"f1b17b9a",50577:"718a249f",50594:"5e8c322a",50701:"dd29fc44",50753:"ac398330",50945:"42028749",51030:"539ea286",51050:"8e1e80f0",51055:"e1f1f5e5",51298:"15f9a01d",52219:"5cd6694a",52325:"c30ad28c",52543:"d076dc84",52637:"6f9fe69a",52644:"b23c3530",53038:"20a9eafe",53173:"427536e0",53253:"88adb28a",53618:"c33184be",53666:"81384957",53786:"57734c3e",53841:"38a169f8",53863:"ecaae4e2",53939:"c42a8406",53986:"b498c8c4",53989:"592f89b7",54044:"f80dd7b4",54062:"3b062bbb",54299:"8b417bc1",54369:"40d5179d",54420:"0aa7b0f6",54522:"c93ad82c",54557:"897968e6",54724:"e740adc1",54865:"88b032cb",54986:"af937e88",55341:"3af2a197",55709:"450968d8",55791:"c01f9689",55814:"f2f63246",56258:"b3b449a4",56444:"4eaab309",56479:"5cbd25da",56528:"dc8226a5",56783:"8ec0cf54",56803:"d06cebb6",56813:"9804dfdc",56871:"cbfe050e",56985:"bbe5e087",57349:"b34b854d",57450:"6a7304f2",57765:"38ace798",57829:"685db979",57971:"281124ee",57986:"fc333af4",58213:"64866596",58246:"4c776e9d",58280:"2b85c0dc",58382:"de02cc97",58441:"dfbaa6ae",58454:"7fbe8658",58827:"180f3b55",58833:"0353b5aa",58918:"3ca92a4f",59076:"d9d2bbd8",59207:"ae6af915",59253:"c0043b6b",59484:"56816773",59576:"266d7307",59926:"cdc57661",60010:"34457c54",60047:"6e2997f6",60361:"994b54c0",60503:"0ef97a33",60586:"4e7e8c03",60744:"9a2ca7ca",60775:"8f002d3e",60894:"1ad74611",60969:"9a8dd95b",61014:"599b8a50",61235:"a7456010",61436:"f8ca1226",61521:"145f0f2d",61724:"19b0e798",61785:"5287bb0d",61886:"dccbc92c",61894:"e906e12e",61993:"61695351",62094:"4c31e171",62865:"f1cc8ddc",63062:"7e41cfba",63232:"89b81506",63234:"6a916855",63437:"d0c3e410",63682:"dedaee21",63771:"01d8ea8c",63787:"679dc2ab",63822:"76b1649d",63950:"9f6cf5fd",64243:"f2a2f9b0",64383:"bba702a1",64710:"f988f039",65078:"0e6005a4",65361:"9aca3dd5",65442:"43f13aa6",65533:"7c4c7e94",65561:"9561be57",65713:"e2104e2c",65725:"b6471e50",65960:"49ab270b",66061:"1f391b9e",66161:"3c309f93",66203:"c60f0ca5",66253:"0342ac2e",66310:"8cfa7b46",66826:"492daeac",66875:"ca557eb8",66934:"af847786",67086:"06ebab54",67098:"a7bd4aaa",67293:"10035306",67306:"326d3e84",67458:"853a55a9",67511:"9c30c2c3",67666:"adf3778a",67683:"9c48eed6",68162:"d0b39ee5",68269:"d82f874a",68402:"dd844236",68522:"1d142a28",68634:"9a2bb2a0",68675:"2ede8631",68775:"11c3f46d",68777:"a1650638",68985:"54e3ca7d",69262:"18c41134",69312:"71bcdb39",69328:"6b9fd7ab",69427:"2f95d118",69539:"a37cc2d1",69648:"20c96d7f",69896:"03ece191",69963:"56a94e77",70107:"4dce8c58",70278:"e2dec549",70341:"25367aee",70467:"5f72403c",70513:"02d98a17",70514:"213749d1",70719:"3e9cee20",70925:"98ab9f09",71052:"5114cac7",71153:"bd35c30f",71253:"d54172bc",71374:"ff5f0538",71436:"739628b0",71698:"3182f957",71724:"dff1c289",71886:"047c1b55",72061:"73eb5afe",72433:"e63c21e9",72457:"443836b2",72472:"eafe052e",72605:"76f005df",72684:"430ec093",73044:"c9cc33ba",73114:"c6109f2f",73211:"5a940ec9",73250:"dc5c6130",73430:"95d7193c",73569:"5dce8dd1",73943:"088da689",73963:"8bfd748a",74134:"393be207",74146:"f85cca3b",74646:"9c1010f7",74696:"b8e8735c",74936:"c4b7406e",75049:"1aa6104b",75124:"4d29439d",75272:"6d96b411",75807:"f755a884",75836:"87bfefef",75857:"92734467",75922:"b570adc9",75949:"e4103a51",76148:"4ac6148f",76162:"c74d5e3d",76350:"fbf479b9",76373:"5b483024",76573:"2b31bbe1",76597:"69d4b55a",76629:"1f45bfa9",76673:"254b07d4",76847:"b4632e35",76927:"4d7553bb",77091:"831d0057",77204:"707b92ce",77220:"7ded32e9",77314:"467c34f2",77321:"50efa68a",77481:"08440b71",77800:"f9377955",77815:"ea075918",77925:"f52989a7",77989:"9b7a6760",78049:"2478852b",78129:"4d8e6a66",78190:"6e7377a1",78328:"c65e3ea9",78544:"c9d639a6",78625:"7d3c65f4",78809:"3e510822",79048:"a94703ab",79075:"42d6648b",79382:"8c623740",80334:"a7e44d9e",80385:"114a55b5",80407:"96060487",80636:"c5f21ea6",80684:"5b5a2815",81032:"94ad216f",81413:"5765ff9f",81590:"a0a49e6e",81837:"bcea90b8",81953:"1e4232ab",82381:"015a12ec",82486:"df943bb5",82664:"9639b4bb",82706:"e7a2ccdf",82901:"400e5e05",83039:"a72a19ab",83168:"60c49928",83197:"f8abf08c",83276:"14469aa3",83673:"7e272f4c",83976:"0e384e19",84064:"48dd8fe6",84138:"6556adbb",84362:"baeecf43",84536:"7b505d62",84581:"f16a979a",84943:"b604b309",84968:"e9524228",85183:"c8b82856",85268:"16cc8cf5",85342:"f9498ed2",85460:"13d21b80",85499:"e83415f2",85789:"12d92307",85841:"e5d2d428",85894:"3036cc63",85907:"dd11fd39",85964:"b6f12020",86012:"4b0140ca",86090:"a9687b02",86180:"5fab0d7b",86249:"783965ce",86409:"8690fb5d",86514:"4ac9b518",86577:"4eb66dc8",86979:"5d30da0c",87152:"3794302a",87189:"2d91c4e0",87294:"76e51487",87517:"35d95d3a",87785:"f0f562a4",87793:"5b65a4a8",88345:"cf1a380b",88518:"575e5b46",88527:"a7c88a93",88614:"b965fcf2",88630:"db98811b",88735:"13b1a3fa",88788:"4c22038c",88863:"f55d3e7a",88955:"cbfda352",89052:"687577ad",89695:"3af33abc",90031:"a4b70c0e",90033:"87eb9014",90054:"304c2294",90146:"df5a394e",90294:"abb5965e",90564:"7569ca31",90597:"9bbbaa56",90687:"976e56d2",90771:"d4813f73",90799:"7bb51cbb",90878:"39efb958",91074:"a5017b85",91344:"de5cc829",91466:"f0864452",91603:"160053eb",91945:"6073880f",91974:"5c868d36",92373:"4871d8df",92388:"96c08df1",92401:"1ffd08f7",92576:"22700033",92813:"2cf7b004",92997:"f5e67f25",93306:"f7cc92e8",93364:"50662ffb",93505:"5c244a8a",93860:"782b2d66",93953:"97aced89",94072:"68bac681",94270:"b20ce122",94298:"11dd256b",94506:"cc531d35",94835:"ce9395e9",94878:"795bd4c9",94903:"7e8901cb",94944:"1b8ce8cc",94992:"96c285ca",95020:"ab53dc1b",95594:"18ad6322",95611:"c4703dab",95686:"191c6045",95705:"3f605b15",95734:"117b8318",95886:"962e3ba3",95941:"0cac68f9",96057:"def76093",96444:"4486aafe",96517:"d2f7be51",96524:"3c5be31c",96753:"e1b3512a",96983:"969ca81a",96985:"b93181d8",97146:"d1227148",97149:"bebddf70",97161:"349819cc",97163:"cd64df70",97455:"2487ef53",97610:"40895397",97666:"117cc3f1",97860:"598a57b2",97942:"e12be479",98064:"a1a710c7",98234:"84ddff5f",98275:"e9b84260",98376:"5bd7a5c6",98451:"8bec7861",98766:"c3f53926",99126:"5c41f114",99258:"6a613ac8",99458:"c45a4367",99554:"20b9b68d",99609:"5e411019",99666:"b03a6809",99904:"f7cc2be3",99908:"d3b48789",99990:"55110d5f"}[e]||e)+"."+{13:"122a00d5",34:"fca275ba",38:"3f95da3f",42:"7b9a97da",306:"16cf2f03",339:"f79250e0",511:"13ac80be",587:"b34254ac",749:"71dcdcac",784:"1c829f8b",801:"f1a3bdfb",855:"f9a70d13",1262:"7b13a03d",1378:"52bbe800",1411:"38751a07",2105:"f3b6c3dc",2748:"769d1a66",2915:"8b05ea1b",3053:"189ff70d",3098:"7ed9614a",3575:"9fc14f09",3783:"988db2a3",4060:"6c652d3a",4169:"e92886f6",4186:"7aca2730",4317:"32e18889",4390:"3b61df3b",4562:"e810b3b4",4644:"3b71efd9",4713:"c3edc836",4748:"b7f9e814",4763:"2930fce3",4965:"029bf14d",4969:"1da306f7",5174:"61aa01c4",5277:"27a910a6",5558:"f8050026",5562:"f6d871e2",5635:"410c10f3",5814:"946e381d",5820:"f36fa593",5899:"6dbd6c57",5920:"0a6c329c",6089:"7f379904",6507:"dcf4e333",6650:"f3a8031b",6673:"fb8b3a66",6846:"6df3332a",6949:"fb689810",7251:"8a5e19ad",7336:"bf67304e",7435:"cc510bdf",7778:"b792215c",7955:"f4bd4e42",8016:"3cb9b509",8326:"f884807e",8465:"e127f147",8489:"2fbc77df",8649:"07c139c4",8745:"d76f7000",9035:"dfa4d474",9067:"d35991dd",9159:"a5063e24",9235:"c6a4fc0d",9248:"4eb1aae8",9430:"d74a2795",9451:"09532881",9462:"8b68c599",9647:"0bba9670",9670:"756e59dd",9898:"6158e9fd",10045:"f999d084",10305:"d3a2bd97",10317:"3a8fd5ae",10433:"3f0d53a5",10535:"6bb9a6dc",10578:"6ce0ac86",11093:"971f0f8d",11149:"02c9cffb",11407:"9bf9fd4a",11431:"b75cb7a2",11807:"ee0a7b1f",12094:"b2c0787f",12099:"f7c89bc8",12443:"f7701803",12577:"e30312a0",12596:"eff98b02",12744:"68f29480",12903:"8e4cf4c8",13095:"d4245844",13298:"4aa29644",13358:"48f50de0",13579:"671b3c65",13615:"83a8d36a",13618:"abf72b71",13786:"1c51ca95",13829:"b78a00b7",14160:"1331a43a",14646:"1a570053",14856:"6bb1f8ae",15040:"52d79319",15448:"0c593b80",15626:"2882cab8",15908:"4998e3be",16100:"c5b498de",16182:"5a472c06",16253:"d0a88c76",16436:"5ef43035",16824:"c240e7f9",16844:"cb31df76",16966:"9f3b4640",16978:"7260306a",17063:"a0e27fa7",17284:"88b6add2",17288:"b1950617",17530:"584da056",17608:"47b10fea",17631:"6476e8ac",17710:"bddc2dcb",17840:"f87c77f0",18137:"62c824ff",18185:"c020901f",18232:"089380f3",18298:"b965a015",18331:"41541f4d",18401:"bd3a775b",19018:"26b32b46",19029:"6594b79c",19202:"29de31ed",19413:"b05f135c",19669:"7688da6a",19761:"10541662",19788:"c495b842",20100:"722cb7d3",20552:"b87927a3",20647:"9fe54789",20673:"eeccce3f",20942:"1b2f49af",21051:"c9f167cf",21241:"d59be70f",21319:"82d402ee",21489:"82a59342",21895:"1e0da28d",21919:"2b652f17",22166:"f68fa09f",22248:"4403807f",22308:"68740513",22482:"a83a7ce7",22663:"d879106b",22720:"cf09a782",22747:"dc888cb6",22798:"01de62ff",22910:"808a1618",23120:"4607258d",23543:"37236400",23596:"0dafae2b",23754:"07f49549",23940:"18015fb1",23970:"d8b84d97",24155:"57571899",24652:"2bae855e",24736:"966bbd35",25030:"869d4d8b",25060:"fbe5bddc",25072:"68a58752",25134:"8ee406a8",25435:"e87f7fc9",25910:"017529ec",26043:"1d53a4cb",26126:"96d5a7d0",26833:"e8ec6494",26945:"a01ad1ec",26968:"81fe198c",27055:"efbca69f",27360:"88801d26",27375:"42acf4ca",27417:"f6e380d7",27479:"c635d40d",27521:"b6a905c0",27584:"612e6e18",27606:"b0897891",27630:"3fd22946",28524:"ff915397",28590:"89c75a2e",28639:"7bb64752",28641:"3fd0c4f3",28898:"6d438b3f",29181:"861e1038",29295:"228169d7",29305:"f863c714",29369:"44d76668",29559:"a3c2757b",29755:"fc92233e",29965:"be988d33",30068:"264b82ad",30250:"f687397d",30326:"3f27e759",30343:"80d9d232",30603:"fc05eb92",30648:"becf8087",30683:"ee386fad",31046:"f893defa",31073:"c0fd2357",31145:"1b55450f",31149:"944a3f10",31386:"1de8e8ad",31387:"2311eac5",31429:"9b9f6d62",31437:"10e4c2ca",31493:"f81dc978",31681:"2c11db23",31904:"61b1ea38",32218:"5bb16b49",32222:"4a423fa7",32355:"9dfa5bcd",32379:"a3327840",32387:"d350c361",32641:"5a8e6d4b",32839:"ccd631f7",32897:"f4f84cde",32952:"f85a9b07",33137:"5422a0b7",33777:"8a0039a9",33794:"40d7d52a",33967:"cbabe14a",34016:"55511902",34321:"fa60274e",34426:"1c5e0795",34435:"b8d3b9f0",34467:"e4de8d25",34583:"25056f35",34620:"d654a493",34625:"d8f1ff7e",34639:"0fa2469e",34761:"fdf08675",34872:"314228a1",35402:"252c693b",35466:"6bab2880",35563:"3efcf5fe",35742:"3f05066e",35894:"d50ceed9",36043:"f8ffa82d",36077:"79a4ba61",36439:"9fbc412d",36614:"af0ea545",36640:"eeb77d44",36811:"c3364162",36894:"adaff2d1",36984:"89e85469",37041:"22a711ff",37138:"dbe1bc3a",37341:"e62d135f",37385:"9b15d393",37587:"3a54ee03",37602:"3b1979dc",37627:"d7485072",37785:"0c759d0c",37879:"ad50afa1",37906:"454348c5",37947:"89e14bad",38096:"58d5752b",38130:"5db9b6b2",38343:"bec5c2a3",38743:"e8125e33",38803:"336d1eab",38811:"05712d64",39009:"39cc3b7f",39014:"eda8d570",39019:"40a9a4f5",39046:"49e1cac0",39057:"97bdbc01",39092:"34ee8c59",39339:"01258c65",39408:"31d90fff",39546:"d19696f3",39588:"d933ed4b",39598:"336d4c97",39874:"2fc83bb2",39928:"ba545b42",40632:"770fbf4a",40650:"354fc3bf",40910:"cc2c38d2",41039:"36652644",41130:"540b1517",41321:"85700b6b",41382:"1fc7b5a4",41465:"d80081ab",41604:"7eb9bb07",41945:"c31d568d",41954:"9afa1075",41998:"7c47fa34",42280:"06c0a78d",42292:"d5feaee2",42477:"9c5d7f31",42666:"e3be0844",42792:"aa9d2bec",42819:"27f25ae5",42970:"e31d1efb",43101:"1bf86b35",43107:"223638e3",43155:"ff9c2073",43252:"11a88a91",43333:"366c5497",43359:"befa9baf",43527:"584edb7d",43853:"43e17b79",43891:"336a50d2",43988:"47d001ae",44020:"55df1169",44099:"74566260",44125:"b60f1ea5",44291:"1bc6c114",44362:"4c96f73f",44512:"93a0a5cf",44514:"f71ed386",44717:"461ba04b",44849:"7f0de522",44919:"b25f059a",45131:"b1eddb81",45140:"04c480ae",45152:"f5626107",45182:"77e3f007",45189:"311a52c7",45372:"c33c60f6",45449:"3984d821",45547:"b12d5e94",45560:"fdb861d5",45691:"f7c46fa4",45744:"5ac87c17",45848:"ff536975",46138:"d9663e58",46187:"b54064b7",46188:"009b5e28",46808:"f3c9b0b2",46904:"1da44550",46906:"a4432b4a",46977:"8689144b",47006:"7ca02139",47024:"02b84622",47102:"afe6b784",47182:"4a2fb261",47419:"a4241904",47420:"353a7a00",47467:"769960e2",47902:"26d40518",47964:"2bdd2ce6",48095:"30dd6241",48213:"211ed213",48296:"a0164d2c",48369:"a8c39b5a",48589:"18271b0d",48623:"c5d97aa5",48702:"399b4023",48903:"d325cba8",49167:"7c6f37f1",49176:"fea4d09e",49197:"e0fb8a2e",49205:"bac34dd5",49280:"bd6e7f0a",49840:"29e25c84",49981:"a3046928",50105:"4ff7b0ed",50232:"d3cf910b",50332:"66fc94a3",50566:"1e0c5823",50577:"9363c826",50594:"f0f5d22d",50701:"53a04456",50753:"92f473eb",50945:"705b54ba",51030:"02f4b103",51050:"5a0c9e42",51055:"458abbc5",51298:"44619ac9",52219:"51b893d0",52325:"ea3322bc",52543:"01910b20",52637:"0d9fe7c2",52644:"f7b6fc91",53038:"f1d6f8aa",53173:"84f9320b",53253:"3ae5ebc2",53618:"829e572e",53666:"d726decf",53786:"9f7b0a4a",53841:"020794e0",53863:"31947663",53939:"70bae44d",53986:"b6ff1452",53989:"087ad936",54044:"d48bcf2f",54062:"e831ba2c",54299:"371867dc",54369:"0660630b",54420:"81825617",54522:"ba278d82",54557:"1a3f1d52",54724:"288d1fe8",54865:"8bb2612b",54986:"9e890ab5",55341:"7c49ed1e",55709:"ca3c51ab",55791:"94caf8ac",55814:"ff076f51",56258:"6d54bafc",56444:"ea28cfbd",56479:"46cf7633",56528:"4c49111d",56783:"51b26f3b",56803:"5261b396",56813:"b03aaa98",56871:"cabb075b",56985:"10bc5e1e",57349:"203dfd34",57450:"741122ce",57765:"95a9193a",57829:"525a435a",57971:"fa96b6d6",57986:"10427959",58213:"807f1de1",58246:"f5099b21",58280:"1209041d",58382:"eee8e8d8",58441:"83e87743",58454:"db05df5f",58827:"d767d3f4",58833:"4a2c7b63",58918:"8dfd2959",59076:"30b13c0f",59207:"05a870f5",59253:"dfcfc5a7",59484:"846949ba",59576:"c139e764",59926:"4102027f",60010:"76c86acf",60047:"409c9311",60361:"7f3bad23",60503:"6bf30e61",60586:"da3a0fb1",60744:"e750d67a",60775:"07b81bfa",60894:"bf3f40ae",60969:"e87953dd",61014:"c5badf91",61235:"8b8a98d9",61436:"dc733da2",61521:"1c4af96a",61724:"ec1fcf59",61785:"96bcbece",61886:"644be4ca",61894:"e55ba280",61993:"ff89e5af",62094:"6c0794f6",62865:"2e192438",63062:"25bbf22a",63232:"ed6e4f64",63234:"cffcd830",63437:"1714d1a9",63682:"48abb111",63771:"f06b5db1",63787:"29320ea9",63822:"90c3333e",63950:"fda647f4",64243:"03cbd395",64383:"1a2a597b",64710:"898a9af6",65078:"bce9a80e",65361:"0b51caf8",65442:"cba173ba",65533:"c2813182",65561:"9587fb32",65713:"a045027a",65725:"5fb170bf",65960:"f476bc16",66061:"251ad4c0",66161:"fa5672f4",66203:"811d9415",66253:"fac09dc4",66310:"5e3fa55d",66826:"6d9ece93",66875:"25ade41c",66934:"3cbdcf48",67086:"72530177",67098:"3a7e4142",67293:"7c5694a7",67306:"37bde278",67458:"33de24fd",67511:"5091a90d",67666:"946c9316",67683:"42461544",68162:"b4b127ab",68269:"31a0fb60",68402:"7a0f495f",68522:"a04edd60",68634:"3165ecc4",68675:"e7d9337d",68775:"f16539d8",68777:"b3416d76",68985:"5446a30c",69262:"810442a9",69312:"8e4443ac",69328:"954c04a9",69427:"276a2a53",69539:"09269d14",69648:"1049784a",69896:"9d4e68f2",69963:"c2700a86",70107:"c212461d",70278:"b16af069",70341:"82dc9cdc",70467:"85ce3247",70513:"de4ccb1d",70514:"33c6fd16",70719:"87695578",70925:"cbed641e",71052:"7864e68e",71153:"7575ba72",71253:"0d70acbe",71374:"2688c6ba",71436:"f21f3f1b",71698:"0c133056",71724:"5dd49ee2",71886:"07911186",72061:"55dbc9f0",72433:"5794e62a",72457:"bb19cc09",72472:"d725f5d4",72605:"5e108ba4",72684:"52ff8132",73044:"c442f1a9",73114:"eedc5f42",73211:"99053e12",73250:"e7ab9216",73430:"bd381856",73569:"022a35f8",73943:"b19752f3",73963:"cb139d98",74134:"657b4bea",74146:"f63a4a4b",74646:"01cfa7e9",74696:"7eaf54a6",74936:"5e355d28",75049:"4dad0421",75124:"c3d1fa25",75272:"008245e1",75807:"724b7419",75836:"367f3c84",75857:"e0bf7038",75922:"8eaeb1b1",75949:"d0373ee5",76148:"26f53db9",76162:"4991ce57",76350:"5c1e48f6",76373:"b585567f",76573:"c81c1633",76597:"fcf84f71",76629:"eabb83eb",76673:"117c00bf",76847:"b1308295",76927:"c55a8516",77091:"97fb0600",77204:"aaaad3af",77220:"d573bda5",77314:"93d5978e",77321:"4942ea04",77481:"5626ac58",77800:"1a0fe93f",77815:"89fca7c6",77925:"9d4f5ab6",77989:"ba88e4a8",78049:"10826f88",78129:"6d7358d0",78190:"6cc6d9f8",78328:"e6c6b5a7",78544:"13d66aa2",78625:"cd8ae9f8",78809:"981884a1",79048:"c8450660",79075:"0fa2f825",79382:"75cab064",80334:"a8e195c7",80385:"b9c0e823",80407:"09144228",80636:"6d39a38f",80684:"e72b79e1",81032:"c76f4d19",81413:"39d42a3a",81590:"4b48ce6f",81837:"55867a75",81953:"204de63d",82237:"87a08d63",82381:"6bd35f6a",82486:"4394731e",82664:"c5004ae5",82706:"b4a4b320",82901:"a9a75c71",83039:"65ae6646",83168:"f3ec6ff5",83197:"b4e27096",83276:"786e8dfa",83673:"85101d98",83976:"63fdc59b",84064:"bca156a1",84138:"558d1a7f",84362:"581bd73f",84536:"6cab27c3",84581:"f27b5eb8",84943:"bf4d333f",84968:"0bd72a85",85183:"166a0363",85268:"918f924c",85342:"f156d1aa",85460:"a6f2b02b",85499:"4df4dcf9",85789:"16c2e5be",85841:"9ceca459",85894:"6f445a39",85907:"c11ec05c",85964:"661a733a",86012:"b9a330f9",86090:"bf1df0c2",86180:"6d692c08",86249:"e670b831",86409:"0c0aa434",86514:"118c5776",86577:"d9707ed3",86979:"ccad5ac7",87152:"5bca9e6c",87189:"3b35393b",87294:"f151b45d",87517:"39222b5d",87785:"c5a6f848",87793:"fbca7175",88345:"6ecceca5",88518:"f02d9bda",88527:"34e0966e",88614:"25928989",88630:"e61e71b7",88735:"6a5143a4",88788:"3cd58870",88863:"d49795bb",88955:"681816e4",89052:"f8d22459",89695:"030e4216",90031:"8c3d3384",90033:"2c98a32d",90054:"0e67d513",90146:"395c8f62",90294:"a2665fad",90564:"4341ac20",90597:"5447b95a",90687:"dcae98ea",90771:"b41a8afc",90799:"d23a254e",90878:"c06eb9cb",91074:"52685b17",91344:"4f37f7e8",91466:"287aa422",91603:"505ad007",91945:"d68535ea",91974:"1beacdba",92373:"5f5da80e",92388:"06491ad4",92401:"5fee68b1",92576:"6a5a5537",92813:"deaaa4db",92997:"b3d943eb",93306:"291e5e76",93364:"ed15f531",93505:"9ee07887",93860:"5820e651",93953:"a4c68a1e",94072:"113a6bff",94270:"c19e6482",94298:"79511b46",94506:"b3be55d1",94835:"065501ca",94878:"e24d888e",94903:"ac027a6b",94944:"e331f8e0",94992:"9e4589c5",95020:"a7bb4892",95594:"c45bb08c",95611:"bf9e9a27",95686:"951d3055",95705:"2ef962f2",95734:"11253355",95886:"5fe04c23",95941:"b988aa22",96057:"2b17d4c3",96444:"38793119",96517:"bbcb85c3",96524:"5c9cd89a",96753:"fab25491",96983:"0fcec120",96985:"309d840b",97146:"27675cba",97149:"b1df2d56",97161:"1acff857",97163:"df452ab5",97455:"496d68b1",97610:"213ff56d",97666:"4784c8bd",97860:"a4f381a7",97942:"10932bd3",98064:"2d2b942f",98234:"6133ac9a",98275:"ad342d31",98376:"12a048f0",98451:"80fddf33",98766:"f5359d3e",99126:"c83524dd",99258:"f3e28b2c",99458:"90ebed86",99554:"2d4f7769",99609:"6252a28d",99666:"165936f8",99904:"073e9c34",99908:"5cca9ec2",99990:"bd707e34"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="website:",r.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/geoprocessing/",r.gca=function(e){return e={10035306:"67293",10852366:"41604",17896441:"18401",22700033:"92576",30837423:"42477",40895397:"97610",42028749:"50945",47691619:"43988",49257947:"27606",56816773:"59484",61695351:"61993",64866596:"58213",81384957:"53666",92734467:"75857",96060487:"80407","583603b7":"13",d3fb262d:"34","449e4dc6":"38","9fe84de8":"42","58a05d9a":"306","9b757d58":"339","6cb9b8c5":"511",df5aa7dd:"587",b1abec39:"749",d10f84d4:"784",d466d172:"801","42ec3285":"855","9b1a5c5e":"1262","715df43e":"1378","6e8a13b0":"1411",cdec8630:"2105","822bd8ab":"2748",ef57aa4c:"2915","5a77b0d8":"3053","533a09ca":"3098",c5b77b19:"3575","20c30c76":"3783","296a3842":"4060",b0fe2760:"4169","838fb0b0":"4186",c9716e5b:"4317",ad5d9006:"4390","13245b4f":"4562","065977f7":"4644","4ced9953":"4713","19bc8eef":"4748","6069dc02":"4763","678d861b":"4965",f71bca15:"4969",e442797e:"5174",a9e39b96:"5277",bcb896d7:"5558","9b2427a8":"5562","8cedeea9":"5635","76f1a969":"5814","1020312d":"5820",a09c2993:"5899","7ddc1705":"5920",de0ec296:"6089","18ca75cf":"6507","204e117e":"6650","9709e7cb":"6673","8f95f66c":"6846","3ff52dca":"6949","91b6783f":"7251","76d46aba":"7336","9f83c6f7":"7435","1443f20a":"7778","339f6315":"7955","64dbaf0f":"8016",b79706ee:"8326","6efe857f":"8465",a58f4723:"8489","9d05cd7d":"8649","5c25e40f":"8745","99df31ff":"9035",ec19e0a6:"9067","3bb712cb":"9159",d761df68:"9235",a5000089:"9248","60437e04":"9430","2f4d29f9":"9451",c0d9604c:"9462","5e95c892":"9647","296a08bc":"9670","81f057ea":"9898",cdea44ef:"10045","28543a21":"10305","85ddfa3e":"10317","311ab9cf":"10433",c8f327b7:"10535",e37e0948:"10578","26a8165c":"11093","19c161ed":"11149","94e3e0e3":"11407",b35a4bab:"11431",a6fab790:"11807",d6d926f4:"12094",d92ca8f5:"12099",d8107dcc:"12443",cce52400:"12577",f3e32ae2:"12596","9a50c92d":"12744",a1c3829e:"12903","922b37a4":"13095","4c98ba2d":"13298",d0b4847b:"13358",ca83acbe:"13579",e7cfc72c:"13615","0e930aeb":"13618","35709b3d":"13786","46c06872":"13829",ca1aa266:"14160",f46cf07e:"14646","2b163177":"14856","452aa042":"15040","1cbe4596":"15448","672ed64a":"15626","96c6ab62":"15908","5bf3aef7":"16100",cd280042:"16182","8bc8919d":"16253",ef6674fe:"16436","5b725301":"16824",d39d81b4:"16844",cb6adff9:"16966",d3818960:"16978",ceb71161:"17063","3041404c":"17284",cf8d0fcc:"17288","05da8984":"17530",d6fc3522:"17608","660b2a78":"17631","4a4fa746":"17710",f3d56391:"17840",ecfed5ec:"18137","5faf1f47":"18185","057a4864":"18232","6f53a749":"18298",a6270d48:"18331","21b0cdf7":"19018",a156e6ac:"19029","8b0f1c4e":"19202","5be9832d":"19413",f64fce26:"19669","673ec543":"19761",b75d1943:"19788",e276cf42:"20100","5a69df3e":"20552",a2b365cf:"20647",d3fa14af:"20673","04b9c63d":"20942",f47f5b5c:"21051",a74d2383:"21241","34cab964":"21319","5c52f6e8":"21489",e6688bcd:"21895",f567390f:"21919",a73c2a00:"22166","6aa3a25b":"22248","28bea1e7":"22308","3267b9a3":"22482","0553e70a":"22663","2bf4ec9b":"22720","295604f4":"22747","00120f28":"22798","18b3c895":"22910","9bc477a6":"23120","549db752":"23543","42c64eb9":"23596",aafb361c:"23754","3885774a":"23940",ab71a14f:"23970","87ef4734":"24155",f5720a8f:"24652",e44a2883:"24736","79d1a076":"25030",b4698576:"25060","4dd4eb46":"25072","3ff000ec":"25134","7a0e7b59":"25435","54a3c5db":"25910",f183e07b:"26043","77861e5d":"26126","37a91261":"26833",cc189fd2:"26945","51c27797":"26968","3374161e":"27055","0b8ab3bc":"27360","58ef7c00":"27375",a1b14e0f:"27417","406590f2":"27479","6884bd1a":"27521","8e52731f":"27584",bed62a7f:"27630",dba81e08:"28524","73e979b3":"28590","18f8d593":"28639","2f97ff33":"28641","11eaec78":"28898","7b202e13":"29181",c6aca044:"29295","3223cc95":"29305","60f65e51":"29369",a067ac6d:"29559",d3bb98d0:"29755",e9a0ef15:"29965",bd00d4f3:"30068","0cc7d840":"30250","5fd2ca4b":"30326","636e82b2":"30343","936e820e":"30603",a03c5edd:"30648","7a5b6a82":"30683",ffe5d85d:"31046","3465e32b":"31073",fe77d560:"31145","76339d26":"31149","6b810897":"31386",c533f048:"31387",c5879d20:"31429","9f1c9cfe":"31437","8ebd9ccd":"31493",bb47ce6c:"31681","5072f88a":"31904","57b14e43":"32218","301e080f":"32222",b4ad6a28:"32355",af605570:"32379","7b2fdb8a":"32387","11b8c77a":"32641",ab0eb107:"32839","351342bb":"32897",efff1481:"32952","27580d35":"33137",b705015d:"33777",a745502a:"33794","9a64398d":"33967","6d296574":"34016","51c12c5f":"34321",d834047e:"34426",dc7cfb41:"34435",cf65afab:"34467","1df93b7f":"34583","5eed5665":"34620",e2c2a025:"34625","8517b31c":"34639","06d51d06":"34761",e8d3f6f9:"34872",c4be7b44:"35402",ea0e90af:"35466","3f655634":"35563",aba21aa0:"35742","1d18b285":"35894",d7790313:"36043","753493e0":"36077","51cf6fc8":"36439","427578a9":"36614","970de22d":"36640",aefb526e:"36811","404c31a1":"36894","7d6c9398":"36984",b260a133:"37041","3603a0ea":"37138","8f797c1e":"37341","000edf12":"37385","36d9a104":"37587","30330b8d":"37602","6e26a28f":"37627","126c431b":"37785",c0953c5f:"37879","6cfde557":"37906","1bad9c20":"37947","7bf88be3":"38096","98b8dd79":"38130","1c396d99":"38343","3eb03649":"38743","59a1ce31":"38803","0d00f88f":"38811",facd25cf:"39009","58297ce8":"39014","9279e2ec":"39019","35b544ea":"39046",a273324b:"39057","5a71cf91":"39092","29b28278":"39339",e88f1506:"39546","470cb80a":"39588","8ee52ef7":"39598",ab208bf2:"39874","4e336666":"39928","57e60529":"40632","6d612f6b":"40650","9312cbc6":"40910","63b9acb4":"41039","69e9e61b":"41130","3e19de0e":"41321","3f189bf2":"41382",fb7e9e31:"41465",a41bcd85:"41945","7c49023e":"41954",e5e12b34:"41998","7e75397b":"42280",f0480ff1:"42292","3db66c4a":"42666",a3e64e69:"42792","27bf54aa":"42819","277b12d2":"42970",c0295fc4:"43101",f0ec41e8:"43107","2737f74b":"43155","99fc20f8":"43252","6a3047b1":"43333",ac5c11db:"43359",bda60f6c:"43527","88724c8f":"43853",c0b36077:"43891","841863c4":"44020",a698f61a:"44099","093ef478":"44125","83a76d74":"44291","7ba7cfc0":"44362","9bdb307d":"44512",cb42257b:"44514","597c813f":"44717","6dd78e99":"44849","594c1392":"44919",fa1e3c90:"45131",e602906e:"45140","23e66fc6":"45152","260793df":"45182",b19c47a1:"45189","0be6ddf6":"45372","4f92df94":"45449","9bd9506e":"45547","60d03e30":"45560","47db13d9":"45691",aa37aa09:"45744","0b237cae":"45848","206aceb6":"46138","3508ba7b":"46187",ee7f1ebf:"46188",e357afdb:"46808","835f7f11":"46904","08877af4":"46906","45bfc0b8":"46977",b5927a7f:"47006","81113f50":"47024",f67fc0f1:"47102","5a573055":"47182","4cc3c8d8":"47419",d299e6a5:"47420",c6fb0e59:"47467","4c0b429a":"47902",cae4d725:"47964","091b5047":"48095","3aa06708":"48213","1b5fdf8a":"48296","6e02bca9":"48369",ff31178b:"48589",a1982cf6:"48623","724437c1":"48702",d8e024af:"48903","42124e5a":"49167","54ad080c":"49176","8a5d79c1":"49197",c9f6b581:"49205",d3d9fe11:"49280",a39f65f3:"49840","1c94f36b":"49981","0e8eb251":"50105",ed4fae79:"50232",fe853a6c:"50332",f1b17b9a:"50566","718a249f":"50577","5e8c322a":"50594",dd29fc44:"50701",ac398330:"50753","539ea286":"51030","8e1e80f0":"51050",e1f1f5e5:"51055","15f9a01d":"51298","5cd6694a":"52219",c30ad28c:"52325",d076dc84:"52543","6f9fe69a":"52637",b23c3530:"52644","20a9eafe":"53038","427536e0":"53173","88adb28a":"53253",c33184be:"53618","57734c3e":"53786","38a169f8":"53841",ecaae4e2:"53863",c42a8406:"53939",b498c8c4:"53986","592f89b7":"53989",f80dd7b4:"54044","3b062bbb":"54062","8b417bc1":"54299","40d5179d":"54369","0aa7b0f6":"54420",c93ad82c:"54522","897968e6":"54557",e740adc1:"54724","88b032cb":"54865",af937e88:"54986","3af2a197":"55341","450968d8":"55709",c01f9689:"55791",f2f63246:"55814",b3b449a4:"56258","4eaab309":"56444","5cbd25da":"56479",dc8226a5:"56528","8ec0cf54":"56783",d06cebb6:"56803","9804dfdc":"56813",cbfe050e:"56871",bbe5e087:"56985",b34b854d:"57349","6a7304f2":"57450","38ace798":"57765","685db979":"57829","281124ee":"57971",fc333af4:"57986","4c776e9d":"58246","2b85c0dc":"58280",de02cc97:"58382",dfbaa6ae:"58441","7fbe8658":"58454","180f3b55":"58827","0353b5aa":"58833","3ca92a4f":"58918",d9d2bbd8:"59076",ae6af915:"59207",c0043b6b:"59253","266d7307":"59576",cdc57661:"59926","34457c54":"60010","6e2997f6":"60047","994b54c0":"60361","0ef97a33":"60503","4e7e8c03":"60586","9a2ca7ca":"60744","8f002d3e":"60775","1ad74611":"60894","9a8dd95b":"60969","599b8a50":"61014",a7456010:"61235",f8ca1226:"61436","145f0f2d":"61521","19b0e798":"61724","5287bb0d":"61785",dccbc92c:"61886",e906e12e:"61894","4c31e171":"62094",f1cc8ddc:"62865","7e41cfba":"63062","89b81506":"63232","6a916855":"63234",d0c3e410:"63437",dedaee21:"63682","01d8ea8c":"63771","679dc2ab":"63787","76b1649d":"63822","9f6cf5fd":"63950",f2a2f9b0:"64243",bba702a1:"64383",f988f039:"64710","0e6005a4":"65078","9aca3dd5":"65361","43f13aa6":"65442","7c4c7e94":"65533","9561be57":"65561",e2104e2c:"65713",b6471e50:"65725","49ab270b":"65960","1f391b9e":"66061","3c309f93":"66161",c60f0ca5:"66203","0342ac2e":"66253","8cfa7b46":"66310","492daeac":"66826",ca557eb8:"66875",af847786:"66934","06ebab54":"67086",a7bd4aaa:"67098","326d3e84":"67306","853a55a9":"67458","9c30c2c3":"67511",adf3778a:"67666","9c48eed6":"67683",d0b39ee5:"68162",d82f874a:"68269",dd844236:"68402","1d142a28":"68522","9a2bb2a0":"68634","2ede8631":"68675","11c3f46d":"68775",a1650638:"68777","54e3ca7d":"68985","18c41134":"69262","71bcdb39":"69312","6b9fd7ab":"69328","2f95d118":"69427",a37cc2d1:"69539","20c96d7f":"69648","03ece191":"69896","56a94e77":"69963","4dce8c58":"70107",e2dec549:"70278","25367aee":"70341","5f72403c":"70467","02d98a17":"70513","213749d1":"70514","3e9cee20":"70719","98ab9f09":"70925","5114cac7":"71052",bd35c30f:"71153",d54172bc:"71253",ff5f0538:"71374","739628b0":"71436","3182f957":"71698",dff1c289:"71724","047c1b55":"71886","73eb5afe":"72061",e63c21e9:"72433","443836b2":"72457",eafe052e:"72472","76f005df":"72605","430ec093":"72684",c9cc33ba:"73044",c6109f2f:"73114","5a940ec9":"73211",dc5c6130:"73250","95d7193c":"73430","5dce8dd1":"73569","088da689":"73943","8bfd748a":"73963","393be207":"74134",f85cca3b:"74146","9c1010f7":"74646",b8e8735c:"74696",c4b7406e:"74936","1aa6104b":"75049","4d29439d":"75124","6d96b411":"75272",f755a884:"75807","87bfefef":"75836",b570adc9:"75922",e4103a51:"75949","4ac6148f":"76148",c74d5e3d:"76162",fbf479b9:"76350","5b483024":"76373","2b31bbe1":"76573","69d4b55a":"76597","1f45bfa9":"76629","254b07d4":"76673",b4632e35:"76847","4d7553bb":"76927","831d0057":"77091","707b92ce":"77204","7ded32e9":"77220","467c34f2":"77314","50efa68a":"77321","08440b71":"77481",f9377955:"77800",ea075918:"77815",f52989a7:"77925","9b7a6760":"77989","2478852b":"78049","4d8e6a66":"78129","6e7377a1":"78190",c65e3ea9:"78328",c9d639a6:"78544","7d3c65f4":"78625","3e510822":"78809",a94703ab:"79048","42d6648b":"79075","8c623740":"79382",a7e44d9e:"80334","114a55b5":"80385",c5f21ea6:"80636","5b5a2815":"80684","94ad216f":"81032","5765ff9f":"81413",a0a49e6e:"81590",bcea90b8:"81837","1e4232ab":"81953","015a12ec":"82381",df943bb5:"82486","9639b4bb":"82664",e7a2ccdf:"82706","400e5e05":"82901",a72a19ab:"83039","60c49928":"83168",f8abf08c:"83197","14469aa3":"83276","7e272f4c":"83673","0e384e19":"83976","48dd8fe6":"84064","6556adbb":"84138",baeecf43:"84362","7b505d62":"84536",f16a979a:"84581",b604b309:"84943",e9524228:"84968",c8b82856:"85183","16cc8cf5":"85268",f9498ed2:"85342","13d21b80":"85460",e83415f2:"85499","12d92307":"85789",e5d2d428:"85841","3036cc63":"85894",dd11fd39:"85907",b6f12020:"85964","4b0140ca":"86012",a9687b02:"86090","5fab0d7b":"86180","783965ce":"86249","8690fb5d":"86409","4ac9b518":"86514","4eb66dc8":"86577","5d30da0c":"86979","3794302a":"87152","2d91c4e0":"87189","76e51487":"87294","35d95d3a":"87517",f0f562a4:"87785","5b65a4a8":"87793",cf1a380b:"88345","575e5b46":"88518",a7c88a93:"88527",b965fcf2:"88614",db98811b:"88630","13b1a3fa":"88735","4c22038c":"88788",f55d3e7a:"88863",cbfda352:"88955","687577ad":"89052","3af33abc":"89695",a4b70c0e:"90031","87eb9014":"90033","304c2294":"90054",df5a394e:"90146",abb5965e:"90294","7569ca31":"90564","9bbbaa56":"90597","976e56d2":"90687",d4813f73:"90771","7bb51cbb":"90799","39efb958":"90878",a5017b85:"91074",de5cc829:"91344",f0864452:"91466","160053eb":"91603","6073880f":"91945","5c868d36":"91974","4871d8df":"92373","96c08df1":"92388","1ffd08f7":"92401","2cf7b004":"92813",f5e67f25:"92997",f7cc92e8:"93306","50662ffb":"93364","5c244a8a":"93505","782b2d66":"93860","97aced89":"93953","68bac681":"94072",b20ce122:"94270","11dd256b":"94298",cc531d35:"94506",ce9395e9:"94835","795bd4c9":"94878","7e8901cb":"94903","1b8ce8cc":"94944","96c285ca":"94992",ab53dc1b:"95020","18ad6322":"95594",c4703dab:"95611","191c6045":"95686","3f605b15":"95705","117b8318":"95734","962e3ba3":"95886","0cac68f9":"95941",def76093:"96057","4486aafe":"96444",d2f7be51:"96517","3c5be31c":"96524",e1b3512a:"96753","969ca81a":"96983",b93181d8:"96985",d1227148:"97146",bebddf70:"97149","349819cc":"97161",cd64df70:"97163","2487ef53":"97455","117cc3f1":"97666","598a57b2":"97860",e12be479:"97942",a1a710c7:"98064","84ddff5f":"98234",e9b84260:"98275","5bd7a5c6":"98376","8bec7861":"98451",c3f53926:"98766","5c41f114":"99126","6a613ac8":"99258",c45a4367:"99458","20b9b68d":"99554","5e411019":"99609",b03a6809:"99666",f7cc2be3:"99904",d3b48789:"99908","55110d5f":"99990"}[e]||e,r.p+r.u(e)},(()=>{var e={45354:0,71869:0};r.f.j=(a,c)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(45354|71869)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",t.name="ChunkLoadError",t.type=f,t.request=d,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(c);n{"use strict";var e,a,c,b,f,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,b,f)=>{if(!c){var d=1/0;for(i=0;i=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f0&&e[i-1][2]>f;i--)e[i]=e[i-1];e[i]=[c,b,f]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,b){if(1&b&&(e=this(e)),8&b)return e;if("object"==typeof e&&e){if(4&b&&e.__esModule)return e;if(16&b&&"function"==typeof e.then)return e}var f=Object.create(null);r.r(f);var d={};a=a||[null,c({}),c([]),c(c)];for(var t=2&b&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,r.d(f,d),f},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({13:"583603b7",34:"d3fb262d",38:"449e4dc6",42:"9fe84de8",306:"58a05d9a",339:"9b757d58",511:"6cb9b8c5",587:"df5aa7dd",749:"b1abec39",784:"d10f84d4",801:"d466d172",855:"42ec3285",1262:"9b1a5c5e",1378:"715df43e",1411:"6e8a13b0",2105:"cdec8630",2748:"822bd8ab",2915:"ef57aa4c",3053:"5a77b0d8",3098:"533a09ca",3575:"c5b77b19",3783:"20c30c76",4060:"296a3842",4169:"b0fe2760",4186:"838fb0b0",4317:"c9716e5b",4390:"ad5d9006",4562:"13245b4f",4644:"065977f7",4713:"4ced9953",4748:"19bc8eef",4763:"6069dc02",4965:"678d861b",4969:"f71bca15",5174:"e442797e",5277:"a9e39b96",5558:"bcb896d7",5562:"9b2427a8",5635:"8cedeea9",5814:"76f1a969",5820:"1020312d",5899:"a09c2993",5920:"7ddc1705",6089:"de0ec296",6507:"18ca75cf",6650:"204e117e",6673:"9709e7cb",6846:"8f95f66c",6949:"3ff52dca",7251:"91b6783f",7336:"76d46aba",7435:"9f83c6f7",7778:"1443f20a",7955:"339f6315",8016:"64dbaf0f",8326:"b79706ee",8465:"6efe857f",8489:"a58f4723",8649:"9d05cd7d",8745:"5c25e40f",9035:"99df31ff",9067:"ec19e0a6",9159:"3bb712cb",9235:"d761df68",9248:"a5000089",9430:"60437e04",9451:"2f4d29f9",9462:"c0d9604c",9647:"5e95c892",9670:"296a08bc",9898:"81f057ea",10045:"cdea44ef",10305:"28543a21",10317:"85ddfa3e",10433:"311ab9cf",10535:"c8f327b7",10578:"e37e0948",11093:"26a8165c",11149:"19c161ed",11407:"94e3e0e3",11431:"b35a4bab",11807:"a6fab790",12094:"d6d926f4",12099:"d92ca8f5",12443:"d8107dcc",12577:"cce52400",12596:"f3e32ae2",12744:"9a50c92d",12903:"a1c3829e",13095:"922b37a4",13298:"4c98ba2d",13358:"d0b4847b",13579:"ca83acbe",13615:"e7cfc72c",13618:"0e930aeb",13786:"35709b3d",13829:"46c06872",14160:"ca1aa266",14646:"f46cf07e",14856:"2b163177",15040:"452aa042",15448:"1cbe4596",15626:"672ed64a",15908:"96c6ab62",16100:"5bf3aef7",16182:"cd280042",16253:"8bc8919d",16436:"ef6674fe",16824:"5b725301",16844:"d39d81b4",16966:"cb6adff9",16978:"d3818960",17063:"ceb71161",17284:"3041404c",17288:"cf8d0fcc",17530:"05da8984",17608:"d6fc3522",17631:"660b2a78",17710:"4a4fa746",17840:"f3d56391",18137:"ecfed5ec",18185:"5faf1f47",18232:"057a4864",18298:"6f53a749",18331:"a6270d48",18401:"17896441",19018:"21b0cdf7",19029:"a156e6ac",19202:"8b0f1c4e",19413:"5be9832d",19669:"f64fce26",19761:"673ec543",19788:"b75d1943",20100:"e276cf42",20552:"5a69df3e",20647:"a2b365cf",20673:"d3fa14af",20942:"04b9c63d",21051:"f47f5b5c",21241:"a74d2383",21319:"34cab964",21489:"5c52f6e8",21895:"e6688bcd",21919:"f567390f",22166:"a73c2a00",22248:"6aa3a25b",22308:"28bea1e7",22482:"3267b9a3",22663:"0553e70a",22720:"2bf4ec9b",22747:"295604f4",22798:"00120f28",22910:"18b3c895",23120:"9bc477a6",23543:"549db752",23596:"42c64eb9",23754:"aafb361c",23940:"3885774a",23970:"ab71a14f",24155:"87ef4734",24652:"f5720a8f",24736:"e44a2883",25030:"79d1a076",25060:"b4698576",25072:"4dd4eb46",25134:"3ff000ec",25435:"7a0e7b59",25910:"54a3c5db",26043:"f183e07b",26126:"77861e5d",26833:"37a91261",26945:"cc189fd2",26968:"51c27797",27055:"3374161e",27360:"0b8ab3bc",27375:"58ef7c00",27417:"a1b14e0f",27479:"406590f2",27521:"6884bd1a",27584:"8e52731f",27606:"49257947",27630:"bed62a7f",28524:"dba81e08",28590:"73e979b3",28639:"18f8d593",28641:"2f97ff33",28898:"11eaec78",29181:"7b202e13",29295:"c6aca044",29305:"3223cc95",29369:"60f65e51",29559:"a067ac6d",29755:"d3bb98d0",29965:"e9a0ef15",30068:"bd00d4f3",30250:"0cc7d840",30326:"5fd2ca4b",30343:"636e82b2",30603:"936e820e",30648:"a03c5edd",30683:"7a5b6a82",31046:"ffe5d85d",31073:"3465e32b",31145:"fe77d560",31149:"76339d26",31386:"6b810897",31387:"c533f048",31429:"c5879d20",31437:"9f1c9cfe",31493:"8ebd9ccd",31681:"bb47ce6c",31904:"5072f88a",32218:"57b14e43",32222:"301e080f",32355:"b4ad6a28",32379:"af605570",32387:"7b2fdb8a",32641:"11b8c77a",32839:"ab0eb107",32897:"351342bb",32952:"efff1481",33137:"27580d35",33777:"b705015d",33794:"a745502a",33967:"9a64398d",34016:"6d296574",34321:"51c12c5f",34426:"d834047e",34435:"dc7cfb41",34467:"cf65afab",34583:"1df93b7f",34620:"5eed5665",34625:"e2c2a025",34639:"8517b31c",34761:"06d51d06",34872:"e8d3f6f9",35402:"c4be7b44",35466:"ea0e90af",35563:"3f655634",35742:"aba21aa0",35894:"1d18b285",36043:"d7790313",36077:"753493e0",36439:"51cf6fc8",36614:"427578a9",36640:"970de22d",36811:"aefb526e",36894:"404c31a1",36984:"7d6c9398",37041:"b260a133",37138:"3603a0ea",37341:"8f797c1e",37385:"000edf12",37587:"36d9a104",37602:"30330b8d",37627:"6e26a28f",37785:"126c431b",37879:"c0953c5f",37906:"6cfde557",37947:"1bad9c20",38096:"7bf88be3",38130:"98b8dd79",38343:"1c396d99",38743:"3eb03649",38803:"59a1ce31",38811:"0d00f88f",39009:"facd25cf",39014:"58297ce8",39019:"9279e2ec",39046:"35b544ea",39057:"a273324b",39092:"5a71cf91",39339:"29b28278",39546:"e88f1506",39588:"470cb80a",39598:"8ee52ef7",39874:"ab208bf2",39928:"4e336666",40632:"57e60529",40650:"6d612f6b",40910:"9312cbc6",41039:"63b9acb4",41130:"69e9e61b",41321:"3e19de0e",41382:"3f189bf2",41465:"fb7e9e31",41604:"10852366",41945:"a41bcd85",41954:"7c49023e",41998:"e5e12b34",42280:"7e75397b",42292:"f0480ff1",42477:"30837423",42666:"3db66c4a",42792:"a3e64e69",42819:"27bf54aa",42970:"277b12d2",43101:"c0295fc4",43107:"f0ec41e8",43155:"2737f74b",43252:"99fc20f8",43333:"6a3047b1",43359:"ac5c11db",43527:"bda60f6c",43853:"88724c8f",43891:"c0b36077",43988:"47691619",44020:"841863c4",44099:"a698f61a",44125:"093ef478",44291:"83a76d74",44362:"7ba7cfc0",44512:"9bdb307d",44514:"cb42257b",44717:"597c813f",44849:"6dd78e99",44919:"594c1392",45131:"fa1e3c90",45140:"e602906e",45152:"23e66fc6",45182:"260793df",45189:"b19c47a1",45372:"0be6ddf6",45449:"4f92df94",45547:"9bd9506e",45560:"60d03e30",45691:"47db13d9",45744:"aa37aa09",45848:"0b237cae",46138:"206aceb6",46187:"3508ba7b",46188:"ee7f1ebf",46808:"e357afdb",46904:"835f7f11",46906:"08877af4",46977:"45bfc0b8",47006:"b5927a7f",47024:"81113f50",47102:"f67fc0f1",47182:"5a573055",47419:"4cc3c8d8",47420:"d299e6a5",47467:"c6fb0e59",47902:"4c0b429a",47964:"cae4d725",48095:"091b5047",48213:"3aa06708",48296:"1b5fdf8a",48369:"6e02bca9",48589:"ff31178b",48623:"a1982cf6",48702:"724437c1",48903:"d8e024af",49167:"42124e5a",49176:"54ad080c",49197:"8a5d79c1",49205:"c9f6b581",49280:"d3d9fe11",49840:"a39f65f3",49981:"1c94f36b",50105:"0e8eb251",50232:"ed4fae79",50332:"fe853a6c",50566:"f1b17b9a",50577:"718a249f",50594:"5e8c322a",50701:"dd29fc44",50753:"ac398330",50945:"42028749",51030:"539ea286",51050:"8e1e80f0",51055:"e1f1f5e5",51298:"15f9a01d",52219:"5cd6694a",52325:"c30ad28c",52543:"d076dc84",52637:"6f9fe69a",52644:"b23c3530",53038:"20a9eafe",53173:"427536e0",53253:"88adb28a",53618:"c33184be",53666:"81384957",53786:"57734c3e",53841:"38a169f8",53863:"ecaae4e2",53939:"c42a8406",53986:"b498c8c4",53989:"592f89b7",54044:"f80dd7b4",54062:"3b062bbb",54299:"8b417bc1",54369:"40d5179d",54420:"0aa7b0f6",54522:"c93ad82c",54557:"897968e6",54724:"e740adc1",54865:"88b032cb",54986:"af937e88",55341:"3af2a197",55709:"450968d8",55791:"c01f9689",55814:"f2f63246",56258:"b3b449a4",56444:"4eaab309",56479:"5cbd25da",56528:"dc8226a5",56783:"8ec0cf54",56803:"d06cebb6",56813:"9804dfdc",56871:"cbfe050e",56985:"bbe5e087",57349:"b34b854d",57450:"6a7304f2",57765:"38ace798",57829:"685db979",57971:"281124ee",57986:"fc333af4",58213:"64866596",58246:"4c776e9d",58280:"2b85c0dc",58382:"de02cc97",58441:"dfbaa6ae",58454:"7fbe8658",58827:"180f3b55",58833:"0353b5aa",58918:"3ca92a4f",59076:"d9d2bbd8",59207:"ae6af915",59253:"c0043b6b",59484:"56816773",59576:"266d7307",59926:"cdc57661",60010:"34457c54",60047:"6e2997f6",60361:"994b54c0",60503:"0ef97a33",60586:"4e7e8c03",60744:"9a2ca7ca",60775:"8f002d3e",60894:"1ad74611",60969:"9a8dd95b",61014:"599b8a50",61235:"a7456010",61436:"f8ca1226",61521:"145f0f2d",61724:"19b0e798",61785:"5287bb0d",61886:"dccbc92c",61894:"e906e12e",61993:"61695351",62094:"4c31e171",62865:"f1cc8ddc",63062:"7e41cfba",63232:"89b81506",63234:"6a916855",63437:"d0c3e410",63682:"dedaee21",63771:"01d8ea8c",63787:"679dc2ab",63822:"76b1649d",63950:"9f6cf5fd",64243:"f2a2f9b0",64383:"bba702a1",64710:"f988f039",65078:"0e6005a4",65361:"9aca3dd5",65442:"43f13aa6",65533:"7c4c7e94",65561:"9561be57",65713:"e2104e2c",65725:"b6471e50",65960:"49ab270b",66061:"1f391b9e",66161:"3c309f93",66203:"c60f0ca5",66253:"0342ac2e",66310:"8cfa7b46",66826:"492daeac",66875:"ca557eb8",66934:"af847786",67086:"06ebab54",67098:"a7bd4aaa",67293:"10035306",67306:"326d3e84",67458:"853a55a9",67511:"9c30c2c3",67666:"adf3778a",67683:"9c48eed6",68162:"d0b39ee5",68269:"d82f874a",68402:"dd844236",68522:"1d142a28",68634:"9a2bb2a0",68675:"2ede8631",68775:"11c3f46d",68777:"a1650638",68985:"54e3ca7d",69262:"18c41134",69312:"71bcdb39",69328:"6b9fd7ab",69427:"2f95d118",69539:"a37cc2d1",69648:"20c96d7f",69896:"03ece191",69963:"56a94e77",70107:"4dce8c58",70278:"e2dec549",70341:"25367aee",70467:"5f72403c",70513:"02d98a17",70514:"213749d1",70719:"3e9cee20",70925:"98ab9f09",71052:"5114cac7",71153:"bd35c30f",71253:"d54172bc",71374:"ff5f0538",71436:"739628b0",71698:"3182f957",71724:"dff1c289",71886:"047c1b55",72061:"73eb5afe",72433:"e63c21e9",72457:"443836b2",72472:"eafe052e",72605:"76f005df",72684:"430ec093",73044:"c9cc33ba",73114:"c6109f2f",73211:"5a940ec9",73250:"dc5c6130",73430:"95d7193c",73569:"5dce8dd1",73943:"088da689",73963:"8bfd748a",74134:"393be207",74146:"f85cca3b",74646:"9c1010f7",74696:"b8e8735c",74936:"c4b7406e",75049:"1aa6104b",75124:"4d29439d",75272:"6d96b411",75807:"f755a884",75836:"87bfefef",75857:"92734467",75922:"b570adc9",75949:"e4103a51",76148:"4ac6148f",76162:"c74d5e3d",76350:"fbf479b9",76373:"5b483024",76573:"2b31bbe1",76597:"69d4b55a",76629:"1f45bfa9",76673:"254b07d4",76847:"b4632e35",76927:"4d7553bb",77091:"831d0057",77204:"707b92ce",77220:"7ded32e9",77314:"467c34f2",77321:"50efa68a",77481:"08440b71",77800:"f9377955",77815:"ea075918",77925:"f52989a7",77989:"9b7a6760",78049:"2478852b",78129:"4d8e6a66",78190:"6e7377a1",78328:"c65e3ea9",78544:"c9d639a6",78625:"7d3c65f4",78809:"3e510822",79048:"a94703ab",79075:"42d6648b",79382:"8c623740",80334:"a7e44d9e",80385:"114a55b5",80407:"96060487",80636:"c5f21ea6",80684:"5b5a2815",81032:"94ad216f",81413:"5765ff9f",81590:"a0a49e6e",81837:"bcea90b8",81953:"1e4232ab",82381:"015a12ec",82486:"df943bb5",82664:"9639b4bb",82706:"e7a2ccdf",82901:"400e5e05",83039:"a72a19ab",83168:"60c49928",83197:"f8abf08c",83276:"14469aa3",83673:"7e272f4c",83976:"0e384e19",84064:"48dd8fe6",84138:"6556adbb",84362:"baeecf43",84536:"7b505d62",84581:"f16a979a",84943:"b604b309",84968:"e9524228",85183:"c8b82856",85268:"16cc8cf5",85342:"f9498ed2",85460:"13d21b80",85499:"e83415f2",85789:"12d92307",85841:"e5d2d428",85894:"3036cc63",85907:"dd11fd39",85964:"b6f12020",86012:"4b0140ca",86090:"a9687b02",86180:"5fab0d7b",86249:"783965ce",86409:"8690fb5d",86514:"4ac9b518",86577:"4eb66dc8",86979:"5d30da0c",87152:"3794302a",87189:"2d91c4e0",87294:"76e51487",87517:"35d95d3a",87785:"f0f562a4",87793:"5b65a4a8",88345:"cf1a380b",88518:"575e5b46",88527:"a7c88a93",88614:"b965fcf2",88630:"db98811b",88735:"13b1a3fa",88788:"4c22038c",88863:"f55d3e7a",88955:"cbfda352",89052:"687577ad",89695:"3af33abc",90031:"a4b70c0e",90033:"87eb9014",90054:"304c2294",90146:"df5a394e",90294:"abb5965e",90564:"7569ca31",90597:"9bbbaa56",90687:"976e56d2",90771:"d4813f73",90799:"7bb51cbb",90878:"39efb958",91074:"a5017b85",91344:"de5cc829",91466:"f0864452",91603:"160053eb",91945:"6073880f",91974:"5c868d36",92373:"4871d8df",92388:"96c08df1",92401:"1ffd08f7",92576:"22700033",92813:"2cf7b004",92997:"f5e67f25",93306:"f7cc92e8",93364:"50662ffb",93505:"5c244a8a",93860:"782b2d66",93953:"97aced89",94072:"68bac681",94270:"b20ce122",94298:"11dd256b",94506:"cc531d35",94835:"ce9395e9",94878:"795bd4c9",94903:"7e8901cb",94944:"1b8ce8cc",94992:"96c285ca",95020:"ab53dc1b",95594:"18ad6322",95611:"c4703dab",95686:"191c6045",95705:"3f605b15",95734:"117b8318",95886:"962e3ba3",95941:"0cac68f9",96057:"def76093",96444:"4486aafe",96517:"d2f7be51",96524:"3c5be31c",96753:"e1b3512a",96983:"969ca81a",96985:"b93181d8",97146:"d1227148",97149:"bebddf70",97161:"349819cc",97163:"cd64df70",97455:"2487ef53",97610:"40895397",97666:"117cc3f1",97860:"598a57b2",97942:"e12be479",98064:"a1a710c7",98234:"84ddff5f",98275:"e9b84260",98376:"5bd7a5c6",98451:"8bec7861",98766:"c3f53926",99126:"5c41f114",99258:"6a613ac8",99458:"c45a4367",99554:"20b9b68d",99609:"5e411019",99666:"b03a6809",99904:"f7cc2be3",99908:"d3b48789",99990:"55110d5f"}[e]||e)+"."+{13:"122a00d5",34:"fca275ba",38:"3f95da3f",42:"7b9a97da",306:"16cf2f03",339:"f79250e0",511:"13ac80be",587:"b34254ac",749:"71dcdcac",784:"1c829f8b",801:"f1a3bdfb",855:"f9a70d13",1262:"7b13a03d",1378:"52bbe800",1411:"38751a07",2105:"f3b6c3dc",2748:"769d1a66",2915:"8b05ea1b",3053:"189ff70d",3098:"7ed9614a",3575:"9fc14f09",3783:"988db2a3",4060:"6c652d3a",4169:"e92886f6",4186:"7aca2730",4317:"32e18889",4390:"3b61df3b",4562:"e810b3b4",4644:"3b71efd9",4713:"c3edc836",4748:"b7f9e814",4763:"2930fce3",4965:"029bf14d",4969:"1da306f7",5174:"61aa01c4",5277:"27a910a6",5558:"f8050026",5562:"f6d871e2",5635:"410c10f3",5814:"946e381d",5820:"f36fa593",5899:"6dbd6c57",5920:"0a6c329c",6089:"7f379904",6507:"dcf4e333",6650:"f3a8031b",6673:"fb8b3a66",6846:"6df3332a",6949:"fb689810",7251:"8a5e19ad",7336:"bf67304e",7435:"cc510bdf",7778:"b792215c",7955:"a02f4aed",8016:"3cb9b509",8326:"f884807e",8465:"e127f147",8489:"2fbc77df",8649:"07c139c4",8745:"d76f7000",9035:"dfa4d474",9067:"d35991dd",9159:"a5063e24",9235:"c6a4fc0d",9248:"4eb1aae8",9430:"d74a2795",9451:"09532881",9462:"8b68c599",9647:"0bba9670",9670:"756e59dd",9898:"6158e9fd",10045:"f999d084",10305:"d3a2bd97",10317:"3a8fd5ae",10433:"3f0d53a5",10535:"6bb9a6dc",10578:"6ce0ac86",11093:"971f0f8d",11149:"02c9cffb",11407:"9bf9fd4a",11431:"b75cb7a2",11807:"ee0a7b1f",12094:"b2c0787f",12099:"f7c89bc8",12443:"f7701803",12577:"e30312a0",12596:"eff98b02",12744:"68f29480",12903:"8e4cf4c8",13095:"d4245844",13298:"4aa29644",13358:"48f50de0",13579:"671b3c65",13615:"83a8d36a",13618:"abf72b71",13786:"1c51ca95",13829:"b78a00b7",14160:"1331a43a",14646:"1a570053",14856:"6bb1f8ae",15040:"52d79319",15448:"0c593b80",15626:"2882cab8",15908:"4998e3be",16100:"c5b498de",16182:"5a472c06",16253:"d0a88c76",16436:"5ef43035",16824:"c240e7f9",16844:"cb31df76",16966:"9f3b4640",16978:"7260306a",17063:"a0e27fa7",17284:"88b6add2",17288:"b1950617",17530:"584da056",17608:"47b10fea",17631:"6476e8ac",17710:"bddc2dcb",17840:"f87c77f0",18137:"62c824ff",18185:"c020901f",18232:"089380f3",18298:"b965a015",18331:"41541f4d",18401:"bd3a775b",19018:"26b32b46",19029:"6594b79c",19202:"29de31ed",19413:"b05f135c",19669:"7688da6a",19761:"10541662",19788:"c495b842",20100:"722cb7d3",20552:"b87927a3",20647:"9fe54789",20673:"eeccce3f",20942:"1b2f49af",21051:"c9f167cf",21241:"d59be70f",21319:"82d402ee",21489:"82a59342",21895:"27636be0",21919:"2b652f17",22166:"f68fa09f",22248:"4403807f",22308:"68740513",22482:"a83a7ce7",22663:"d879106b",22720:"cf09a782",22747:"dc888cb6",22798:"01de62ff",22910:"808a1618",23120:"4607258d",23543:"37236400",23596:"0dafae2b",23754:"07f49549",23940:"18015fb1",23970:"d8b84d97",24155:"57571899",24652:"2bae855e",24736:"966bbd35",25030:"869d4d8b",25060:"fbe5bddc",25072:"68a58752",25134:"8ee406a8",25435:"e87f7fc9",25910:"017529ec",26043:"1d53a4cb",26126:"96d5a7d0",26833:"e8ec6494",26945:"a01ad1ec",26968:"81fe198c",27055:"efbca69f",27360:"88801d26",27375:"42acf4ca",27417:"f6e380d7",27479:"c635d40d",27521:"b6a905c0",27584:"612e6e18",27606:"b0897891",27630:"3fd22946",28524:"ff915397",28590:"89c75a2e",28639:"7bb64752",28641:"3fd0c4f3",28898:"6d438b3f",29181:"861e1038",29295:"228169d7",29305:"f863c714",29369:"44d76668",29559:"a3c2757b",29755:"fc92233e",29965:"be988d33",30068:"264b82ad",30250:"f687397d",30326:"3f27e759",30343:"80d9d232",30603:"fc05eb92",30648:"becf8087",30683:"ee386fad",31046:"f893defa",31073:"c0fd2357",31145:"1b55450f",31149:"944a3f10",31386:"1de8e8ad",31387:"2311eac5",31429:"4d50dd76",31437:"10e4c2ca",31493:"f81dc978",31681:"2c11db23",31904:"61b1ea38",32218:"5bb16b49",32222:"4a423fa7",32355:"9dfa5bcd",32379:"a3327840",32387:"d350c361",32641:"5a8e6d4b",32839:"ccd631f7",32897:"f4f84cde",32952:"f85a9b07",33137:"5422a0b7",33777:"8a0039a9",33794:"40d7d52a",33967:"cbabe14a",34016:"55511902",34321:"fa60274e",34426:"1c5e0795",34435:"b8d3b9f0",34467:"e4de8d25",34583:"25056f35",34620:"d654a493",34625:"d8f1ff7e",34639:"0fa2469e",34761:"fdf08675",34872:"314228a1",35402:"252c693b",35466:"6bab2880",35563:"3efcf5fe",35742:"3f05066e",35894:"d50ceed9",36043:"f8ffa82d",36077:"79a4ba61",36439:"9fbc412d",36614:"af0ea545",36640:"eeb77d44",36811:"c3364162",36894:"adaff2d1",36984:"89e85469",37041:"22a711ff",37138:"dbe1bc3a",37341:"e62d135f",37385:"9b15d393",37587:"3a54ee03",37602:"3b1979dc",37627:"d7485072",37785:"0c759d0c",37879:"ad50afa1",37906:"454348c5",37947:"89e14bad",38096:"58d5752b",38130:"5db9b6b2",38343:"bec5c2a3",38743:"e8125e33",38803:"336d1eab",38811:"05712d64",39009:"39cc3b7f",39014:"eda8d570",39019:"40a9a4f5",39046:"49e1cac0",39057:"97bdbc01",39092:"34ee8c59",39339:"01258c65",39408:"31d90fff",39546:"d19696f3",39588:"d933ed4b",39598:"336d4c97",39874:"2fc83bb2",39928:"ba545b42",40632:"770fbf4a",40650:"354fc3bf",40910:"cc2c38d2",41039:"36652644",41130:"540b1517",41321:"85700b6b",41382:"1fc7b5a4",41465:"d80081ab",41604:"7eb9bb07",41945:"c31d568d",41954:"9afa1075",41998:"7c47fa34",42280:"06c0a78d",42292:"d5feaee2",42477:"9c5d7f31",42666:"e3be0844",42792:"aa9d2bec",42819:"27f25ae5",42970:"e31d1efb",43101:"1bf86b35",43107:"223638e3",43155:"ff9c2073",43252:"11a88a91",43333:"366c5497",43359:"befa9baf",43527:"584edb7d",43853:"43e17b79",43891:"336a50d2",43988:"47d001ae",44020:"55df1169",44099:"74566260",44125:"b60f1ea5",44291:"1bc6c114",44362:"4c96f73f",44512:"93a0a5cf",44514:"f71ed386",44717:"461ba04b",44849:"7f0de522",44919:"b25f059a",45131:"b1eddb81",45140:"04c480ae",45152:"f5626107",45182:"77e3f007",45189:"311a52c7",45372:"c33c60f6",45449:"3984d821",45547:"b12d5e94",45560:"fdb861d5",45691:"f7c46fa4",45744:"5ac87c17",45848:"ff536975",46138:"d9663e58",46187:"b54064b7",46188:"009b5e28",46808:"f3c9b0b2",46904:"1da44550",46906:"a4432b4a",46977:"8689144b",47006:"7ca02139",47024:"02b84622",47102:"afe6b784",47182:"4a2fb261",47419:"a4241904",47420:"353a7a00",47467:"769960e2",47902:"26d40518",47964:"2bdd2ce6",48095:"30dd6241",48213:"211ed213",48296:"a0164d2c",48369:"a8c39b5a",48589:"18271b0d",48623:"c5d97aa5",48702:"399b4023",48903:"d325cba8",49167:"7c6f37f1",49176:"fea4d09e",49197:"e0fb8a2e",49205:"bac34dd5",49280:"bd6e7f0a",49840:"29e25c84",49981:"a3046928",50105:"4ff7b0ed",50232:"d3cf910b",50332:"66fc94a3",50566:"1e0c5823",50577:"9363c826",50594:"f0f5d22d",50701:"53a04456",50753:"92f473eb",50945:"705b54ba",51030:"02f4b103",51050:"5a0c9e42",51055:"458abbc5",51298:"44619ac9",52219:"51b893d0",52325:"ea3322bc",52543:"01910b20",52637:"98e76395",52644:"f7b6fc91",53038:"f1d6f8aa",53173:"84f9320b",53253:"3ae5ebc2",53618:"829e572e",53666:"d726decf",53786:"9f7b0a4a",53841:"020794e0",53863:"31947663",53939:"70bae44d",53986:"b6ff1452",53989:"087ad936",54044:"d48bcf2f",54062:"e831ba2c",54299:"371867dc",54369:"0660630b",54420:"81825617",54522:"ba278d82",54557:"1a3f1d52",54724:"288d1fe8",54865:"8bb2612b",54986:"9e890ab5",55341:"7c49ed1e",55709:"ca3c51ab",55791:"94caf8ac",55814:"ff076f51",56258:"6d54bafc",56444:"ea28cfbd",56479:"46cf7633",56528:"4c49111d",56783:"51b26f3b",56803:"5261b396",56813:"b03aaa98",56871:"cabb075b",56985:"10bc5e1e",57349:"203dfd34",57450:"741122ce",57765:"95a9193a",57829:"525a435a",57971:"fa96b6d6",57986:"10427959",58213:"807f1de1",58246:"f5099b21",58280:"1209041d",58382:"eee8e8d8",58441:"83e87743",58454:"db05df5f",58827:"d767d3f4",58833:"4a2c7b63",58918:"8dfd2959",59076:"30b13c0f",59207:"05a870f5",59253:"dfcfc5a7",59484:"846949ba",59576:"c139e764",59926:"4102027f",60010:"76c86acf",60047:"409c9311",60361:"7f3bad23",60503:"6bf30e61",60586:"da3a0fb1",60744:"e750d67a",60775:"07b81bfa",60894:"bf3f40ae",60969:"e87953dd",61014:"c5badf91",61235:"8b8a98d9",61436:"dc733da2",61521:"1c4af96a",61724:"ec1fcf59",61785:"96bcbece",61886:"644be4ca",61894:"e55ba280",61993:"ff89e5af",62094:"6c0794f6",62865:"2e192438",63062:"25bbf22a",63232:"ed6e4f64",63234:"cffcd830",63437:"1714d1a9",63682:"48abb111",63771:"f06b5db1",63787:"29320ea9",63822:"90c3333e",63950:"fda647f4",64243:"03cbd395",64383:"1a2a597b",64710:"898a9af6",65078:"bce9a80e",65361:"0b51caf8",65442:"cba173ba",65533:"c2813182",65561:"9587fb32",65713:"a045027a",65725:"5fb170bf",65960:"f476bc16",66061:"251ad4c0",66161:"fa5672f4",66203:"811d9415",66253:"fac09dc4",66310:"5e3fa55d",66826:"6d9ece93",66875:"25ade41c",66934:"3cbdcf48",67086:"72530177",67098:"3a7e4142",67293:"7c5694a7",67306:"37bde278",67458:"33de24fd",67511:"5091a90d",67666:"946c9316",67683:"42461544",68162:"b4b127ab",68269:"31a0fb60",68402:"7a0f495f",68522:"a04edd60",68634:"3165ecc4",68675:"e7d9337d",68775:"f16539d8",68777:"b3416d76",68985:"5446a30c",69262:"810442a9",69312:"8e4443ac",69328:"954c04a9",69427:"276a2a53",69539:"09269d14",69648:"1049784a",69896:"9d4e68f2",69963:"c2700a86",70107:"c212461d",70278:"b16af069",70341:"82dc9cdc",70467:"85ce3247",70513:"de4ccb1d",70514:"33c6fd16",70719:"87695578",70925:"cbed641e",71052:"7864e68e",71153:"7575ba72",71253:"0d70acbe",71374:"2688c6ba",71436:"f21f3f1b",71698:"0c133056",71724:"5dd49ee2",71886:"07911186",72061:"55dbc9f0",72433:"5794e62a",72457:"bb19cc09",72472:"d725f5d4",72605:"5e108ba4",72684:"52ff8132",73044:"c442f1a9",73114:"eedc5f42",73211:"99053e12",73250:"e7ab9216",73430:"bd381856",73569:"022a35f8",73943:"b19752f3",73963:"cb139d98",74134:"657b4bea",74146:"f63a4a4b",74646:"01cfa7e9",74696:"7eaf54a6",74936:"5e355d28",75049:"4dad0421",75124:"c3d1fa25",75272:"008245e1",75807:"724b7419",75836:"367f3c84",75857:"e0bf7038",75922:"8eaeb1b1",75949:"d0373ee5",76148:"26f53db9",76162:"4991ce57",76350:"5c1e48f6",76373:"b585567f",76573:"c81c1633",76597:"fcf84f71",76629:"eabb83eb",76673:"117c00bf",76847:"b1308295",76927:"c55a8516",77091:"97fb0600",77204:"aaaad3af",77220:"d573bda5",77314:"93d5978e",77321:"4942ea04",77481:"5626ac58",77800:"1a0fe93f",77815:"89fca7c6",77925:"9d4f5ab6",77989:"ba88e4a8",78049:"10826f88",78129:"6d7358d0",78190:"6cc6d9f8",78328:"e6c6b5a7",78544:"13d66aa2",78625:"cd8ae9f8",78809:"981884a1",79048:"c8450660",79075:"0fa2f825",79382:"75cab064",80334:"a8e195c7",80385:"b9c0e823",80407:"09144228",80636:"6d39a38f",80684:"e72b79e1",81032:"c76f4d19",81413:"39d42a3a",81590:"4b48ce6f",81837:"55867a75",81953:"204de63d",82237:"87a08d63",82381:"6bd35f6a",82486:"4394731e",82664:"c5004ae5",82706:"b4a4b320",82901:"a9a75c71",83039:"65ae6646",83168:"f3ec6ff5",83197:"b4e27096",83276:"786e8dfa",83673:"85101d98",83976:"63fdc59b",84064:"bca156a1",84138:"558d1a7f",84362:"581bd73f",84536:"6cab27c3",84581:"f27b5eb8",84943:"bf4d333f",84968:"0bd72a85",85183:"166a0363",85268:"918f924c",85342:"f156d1aa",85460:"a6f2b02b",85499:"4df4dcf9",85789:"16c2e5be",85841:"9ceca459",85894:"6f445a39",85907:"c11ec05c",85964:"661a733a",86012:"b9a330f9",86090:"bf1df0c2",86180:"6d692c08",86249:"e670b831",86409:"0c0aa434",86514:"118c5776",86577:"d9707ed3",86979:"ccad5ac7",87152:"5bca9e6c",87189:"3b35393b",87294:"f151b45d",87517:"39222b5d",87785:"c5a6f848",87793:"fbca7175",88345:"6ecceca5",88518:"f02d9bda",88527:"34e0966e",88614:"25928989",88630:"e61e71b7",88735:"6a5143a4",88788:"3cd58870",88863:"d49795bb",88955:"681816e4",89052:"f8d22459",89695:"030e4216",90031:"8c3d3384",90033:"2c98a32d",90054:"0e67d513",90146:"395c8f62",90294:"a2665fad",90564:"4341ac20",90597:"5447b95a",90687:"dcae98ea",90771:"b41a8afc",90799:"d23a254e",90878:"c06eb9cb",91074:"52685b17",91344:"4f37f7e8",91466:"287aa422",91603:"505ad007",91945:"d68535ea",91974:"1beacdba",92373:"5f5da80e",92388:"06491ad4",92401:"5fee68b1",92576:"6a5a5537",92813:"deaaa4db",92997:"b3d943eb",93306:"291e5e76",93364:"ed15f531",93505:"9ee07887",93860:"5820e651",93953:"a4c68a1e",94072:"113a6bff",94270:"c19e6482",94298:"79511b46",94506:"b3be55d1",94835:"065501ca",94878:"e24d888e",94903:"ac027a6b",94944:"e331f8e0",94992:"9e4589c5",95020:"a7bb4892",95594:"c45bb08c",95611:"bf9e9a27",95686:"951d3055",95705:"2ef962f2",95734:"11253355",95886:"5fe04c23",95941:"b988aa22",96057:"2b17d4c3",96444:"38793119",96517:"bbcb85c3",96524:"5c9cd89a",96753:"fab25491",96983:"0fcec120",96985:"309d840b",97146:"27675cba",97149:"b1df2d56",97161:"1acff857",97163:"df452ab5",97455:"496d68b1",97610:"213ff56d",97666:"4784c8bd",97860:"a4f381a7",97942:"10932bd3",98064:"2d2b942f",98234:"6133ac9a",98275:"ad342d31",98376:"12a048f0",98451:"80fddf33",98766:"f5359d3e",99126:"c83524dd",99258:"f3e28b2c",99458:"90ebed86",99554:"2d4f7769",99609:"6252a28d",99666:"165936f8",99904:"073e9c34",99908:"5cca9ec2",99990:"bd707e34"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),b={},f="website:",r.l=(e,a,c,d)=>{if(b[e])b[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var f=b[e];if(delete b[e],t.parentNode&&t.parentNode.removeChild(t),f&&f.forEach((e=>e(c))),a)return a(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/geoprocessing/",r.gca=function(e){return e={10035306:"67293",10852366:"41604",17896441:"18401",22700033:"92576",30837423:"42477",40895397:"97610",42028749:"50945",47691619:"43988",49257947:"27606",56816773:"59484",61695351:"61993",64866596:"58213",81384957:"53666",92734467:"75857",96060487:"80407","583603b7":"13",d3fb262d:"34","449e4dc6":"38","9fe84de8":"42","58a05d9a":"306","9b757d58":"339","6cb9b8c5":"511",df5aa7dd:"587",b1abec39:"749",d10f84d4:"784",d466d172:"801","42ec3285":"855","9b1a5c5e":"1262","715df43e":"1378","6e8a13b0":"1411",cdec8630:"2105","822bd8ab":"2748",ef57aa4c:"2915","5a77b0d8":"3053","533a09ca":"3098",c5b77b19:"3575","20c30c76":"3783","296a3842":"4060",b0fe2760:"4169","838fb0b0":"4186",c9716e5b:"4317",ad5d9006:"4390","13245b4f":"4562","065977f7":"4644","4ced9953":"4713","19bc8eef":"4748","6069dc02":"4763","678d861b":"4965",f71bca15:"4969",e442797e:"5174",a9e39b96:"5277",bcb896d7:"5558","9b2427a8":"5562","8cedeea9":"5635","76f1a969":"5814","1020312d":"5820",a09c2993:"5899","7ddc1705":"5920",de0ec296:"6089","18ca75cf":"6507","204e117e":"6650","9709e7cb":"6673","8f95f66c":"6846","3ff52dca":"6949","91b6783f":"7251","76d46aba":"7336","9f83c6f7":"7435","1443f20a":"7778","339f6315":"7955","64dbaf0f":"8016",b79706ee:"8326","6efe857f":"8465",a58f4723:"8489","9d05cd7d":"8649","5c25e40f":"8745","99df31ff":"9035",ec19e0a6:"9067","3bb712cb":"9159",d761df68:"9235",a5000089:"9248","60437e04":"9430","2f4d29f9":"9451",c0d9604c:"9462","5e95c892":"9647","296a08bc":"9670","81f057ea":"9898",cdea44ef:"10045","28543a21":"10305","85ddfa3e":"10317","311ab9cf":"10433",c8f327b7:"10535",e37e0948:"10578","26a8165c":"11093","19c161ed":"11149","94e3e0e3":"11407",b35a4bab:"11431",a6fab790:"11807",d6d926f4:"12094",d92ca8f5:"12099",d8107dcc:"12443",cce52400:"12577",f3e32ae2:"12596","9a50c92d":"12744",a1c3829e:"12903","922b37a4":"13095","4c98ba2d":"13298",d0b4847b:"13358",ca83acbe:"13579",e7cfc72c:"13615","0e930aeb":"13618","35709b3d":"13786","46c06872":"13829",ca1aa266:"14160",f46cf07e:"14646","2b163177":"14856","452aa042":"15040","1cbe4596":"15448","672ed64a":"15626","96c6ab62":"15908","5bf3aef7":"16100",cd280042:"16182","8bc8919d":"16253",ef6674fe:"16436","5b725301":"16824",d39d81b4:"16844",cb6adff9:"16966",d3818960:"16978",ceb71161:"17063","3041404c":"17284",cf8d0fcc:"17288","05da8984":"17530",d6fc3522:"17608","660b2a78":"17631","4a4fa746":"17710",f3d56391:"17840",ecfed5ec:"18137","5faf1f47":"18185","057a4864":"18232","6f53a749":"18298",a6270d48:"18331","21b0cdf7":"19018",a156e6ac:"19029","8b0f1c4e":"19202","5be9832d":"19413",f64fce26:"19669","673ec543":"19761",b75d1943:"19788",e276cf42:"20100","5a69df3e":"20552",a2b365cf:"20647",d3fa14af:"20673","04b9c63d":"20942",f47f5b5c:"21051",a74d2383:"21241","34cab964":"21319","5c52f6e8":"21489",e6688bcd:"21895",f567390f:"21919",a73c2a00:"22166","6aa3a25b":"22248","28bea1e7":"22308","3267b9a3":"22482","0553e70a":"22663","2bf4ec9b":"22720","295604f4":"22747","00120f28":"22798","18b3c895":"22910","9bc477a6":"23120","549db752":"23543","42c64eb9":"23596",aafb361c:"23754","3885774a":"23940",ab71a14f:"23970","87ef4734":"24155",f5720a8f:"24652",e44a2883:"24736","79d1a076":"25030",b4698576:"25060","4dd4eb46":"25072","3ff000ec":"25134","7a0e7b59":"25435","54a3c5db":"25910",f183e07b:"26043","77861e5d":"26126","37a91261":"26833",cc189fd2:"26945","51c27797":"26968","3374161e":"27055","0b8ab3bc":"27360","58ef7c00":"27375",a1b14e0f:"27417","406590f2":"27479","6884bd1a":"27521","8e52731f":"27584",bed62a7f:"27630",dba81e08:"28524","73e979b3":"28590","18f8d593":"28639","2f97ff33":"28641","11eaec78":"28898","7b202e13":"29181",c6aca044:"29295","3223cc95":"29305","60f65e51":"29369",a067ac6d:"29559",d3bb98d0:"29755",e9a0ef15:"29965",bd00d4f3:"30068","0cc7d840":"30250","5fd2ca4b":"30326","636e82b2":"30343","936e820e":"30603",a03c5edd:"30648","7a5b6a82":"30683",ffe5d85d:"31046","3465e32b":"31073",fe77d560:"31145","76339d26":"31149","6b810897":"31386",c533f048:"31387",c5879d20:"31429","9f1c9cfe":"31437","8ebd9ccd":"31493",bb47ce6c:"31681","5072f88a":"31904","57b14e43":"32218","301e080f":"32222",b4ad6a28:"32355",af605570:"32379","7b2fdb8a":"32387","11b8c77a":"32641",ab0eb107:"32839","351342bb":"32897",efff1481:"32952","27580d35":"33137",b705015d:"33777",a745502a:"33794","9a64398d":"33967","6d296574":"34016","51c12c5f":"34321",d834047e:"34426",dc7cfb41:"34435",cf65afab:"34467","1df93b7f":"34583","5eed5665":"34620",e2c2a025:"34625","8517b31c":"34639","06d51d06":"34761",e8d3f6f9:"34872",c4be7b44:"35402",ea0e90af:"35466","3f655634":"35563",aba21aa0:"35742","1d18b285":"35894",d7790313:"36043","753493e0":"36077","51cf6fc8":"36439","427578a9":"36614","970de22d":"36640",aefb526e:"36811","404c31a1":"36894","7d6c9398":"36984",b260a133:"37041","3603a0ea":"37138","8f797c1e":"37341","000edf12":"37385","36d9a104":"37587","30330b8d":"37602","6e26a28f":"37627","126c431b":"37785",c0953c5f:"37879","6cfde557":"37906","1bad9c20":"37947","7bf88be3":"38096","98b8dd79":"38130","1c396d99":"38343","3eb03649":"38743","59a1ce31":"38803","0d00f88f":"38811",facd25cf:"39009","58297ce8":"39014","9279e2ec":"39019","35b544ea":"39046",a273324b:"39057","5a71cf91":"39092","29b28278":"39339",e88f1506:"39546","470cb80a":"39588","8ee52ef7":"39598",ab208bf2:"39874","4e336666":"39928","57e60529":"40632","6d612f6b":"40650","9312cbc6":"40910","63b9acb4":"41039","69e9e61b":"41130","3e19de0e":"41321","3f189bf2":"41382",fb7e9e31:"41465",a41bcd85:"41945","7c49023e":"41954",e5e12b34:"41998","7e75397b":"42280",f0480ff1:"42292","3db66c4a":"42666",a3e64e69:"42792","27bf54aa":"42819","277b12d2":"42970",c0295fc4:"43101",f0ec41e8:"43107","2737f74b":"43155","99fc20f8":"43252","6a3047b1":"43333",ac5c11db:"43359",bda60f6c:"43527","88724c8f":"43853",c0b36077:"43891","841863c4":"44020",a698f61a:"44099","093ef478":"44125","83a76d74":"44291","7ba7cfc0":"44362","9bdb307d":"44512",cb42257b:"44514","597c813f":"44717","6dd78e99":"44849","594c1392":"44919",fa1e3c90:"45131",e602906e:"45140","23e66fc6":"45152","260793df":"45182",b19c47a1:"45189","0be6ddf6":"45372","4f92df94":"45449","9bd9506e":"45547","60d03e30":"45560","47db13d9":"45691",aa37aa09:"45744","0b237cae":"45848","206aceb6":"46138","3508ba7b":"46187",ee7f1ebf:"46188",e357afdb:"46808","835f7f11":"46904","08877af4":"46906","45bfc0b8":"46977",b5927a7f:"47006","81113f50":"47024",f67fc0f1:"47102","5a573055":"47182","4cc3c8d8":"47419",d299e6a5:"47420",c6fb0e59:"47467","4c0b429a":"47902",cae4d725:"47964","091b5047":"48095","3aa06708":"48213","1b5fdf8a":"48296","6e02bca9":"48369",ff31178b:"48589",a1982cf6:"48623","724437c1":"48702",d8e024af:"48903","42124e5a":"49167","54ad080c":"49176","8a5d79c1":"49197",c9f6b581:"49205",d3d9fe11:"49280",a39f65f3:"49840","1c94f36b":"49981","0e8eb251":"50105",ed4fae79:"50232",fe853a6c:"50332",f1b17b9a:"50566","718a249f":"50577","5e8c322a":"50594",dd29fc44:"50701",ac398330:"50753","539ea286":"51030","8e1e80f0":"51050",e1f1f5e5:"51055","15f9a01d":"51298","5cd6694a":"52219",c30ad28c:"52325",d076dc84:"52543","6f9fe69a":"52637",b23c3530:"52644","20a9eafe":"53038","427536e0":"53173","88adb28a":"53253",c33184be:"53618","57734c3e":"53786","38a169f8":"53841",ecaae4e2:"53863",c42a8406:"53939",b498c8c4:"53986","592f89b7":"53989",f80dd7b4:"54044","3b062bbb":"54062","8b417bc1":"54299","40d5179d":"54369","0aa7b0f6":"54420",c93ad82c:"54522","897968e6":"54557",e740adc1:"54724","88b032cb":"54865",af937e88:"54986","3af2a197":"55341","450968d8":"55709",c01f9689:"55791",f2f63246:"55814",b3b449a4:"56258","4eaab309":"56444","5cbd25da":"56479",dc8226a5:"56528","8ec0cf54":"56783",d06cebb6:"56803","9804dfdc":"56813",cbfe050e:"56871",bbe5e087:"56985",b34b854d:"57349","6a7304f2":"57450","38ace798":"57765","685db979":"57829","281124ee":"57971",fc333af4:"57986","4c776e9d":"58246","2b85c0dc":"58280",de02cc97:"58382",dfbaa6ae:"58441","7fbe8658":"58454","180f3b55":"58827","0353b5aa":"58833","3ca92a4f":"58918",d9d2bbd8:"59076",ae6af915:"59207",c0043b6b:"59253","266d7307":"59576",cdc57661:"59926","34457c54":"60010","6e2997f6":"60047","994b54c0":"60361","0ef97a33":"60503","4e7e8c03":"60586","9a2ca7ca":"60744","8f002d3e":"60775","1ad74611":"60894","9a8dd95b":"60969","599b8a50":"61014",a7456010:"61235",f8ca1226:"61436","145f0f2d":"61521","19b0e798":"61724","5287bb0d":"61785",dccbc92c:"61886",e906e12e:"61894","4c31e171":"62094",f1cc8ddc:"62865","7e41cfba":"63062","89b81506":"63232","6a916855":"63234",d0c3e410:"63437",dedaee21:"63682","01d8ea8c":"63771","679dc2ab":"63787","76b1649d":"63822","9f6cf5fd":"63950",f2a2f9b0:"64243",bba702a1:"64383",f988f039:"64710","0e6005a4":"65078","9aca3dd5":"65361","43f13aa6":"65442","7c4c7e94":"65533","9561be57":"65561",e2104e2c:"65713",b6471e50:"65725","49ab270b":"65960","1f391b9e":"66061","3c309f93":"66161",c60f0ca5:"66203","0342ac2e":"66253","8cfa7b46":"66310","492daeac":"66826",ca557eb8:"66875",af847786:"66934","06ebab54":"67086",a7bd4aaa:"67098","326d3e84":"67306","853a55a9":"67458","9c30c2c3":"67511",adf3778a:"67666","9c48eed6":"67683",d0b39ee5:"68162",d82f874a:"68269",dd844236:"68402","1d142a28":"68522","9a2bb2a0":"68634","2ede8631":"68675","11c3f46d":"68775",a1650638:"68777","54e3ca7d":"68985","18c41134":"69262","71bcdb39":"69312","6b9fd7ab":"69328","2f95d118":"69427",a37cc2d1:"69539","20c96d7f":"69648","03ece191":"69896","56a94e77":"69963","4dce8c58":"70107",e2dec549:"70278","25367aee":"70341","5f72403c":"70467","02d98a17":"70513","213749d1":"70514","3e9cee20":"70719","98ab9f09":"70925","5114cac7":"71052",bd35c30f:"71153",d54172bc:"71253",ff5f0538:"71374","739628b0":"71436","3182f957":"71698",dff1c289:"71724","047c1b55":"71886","73eb5afe":"72061",e63c21e9:"72433","443836b2":"72457",eafe052e:"72472","76f005df":"72605","430ec093":"72684",c9cc33ba:"73044",c6109f2f:"73114","5a940ec9":"73211",dc5c6130:"73250","95d7193c":"73430","5dce8dd1":"73569","088da689":"73943","8bfd748a":"73963","393be207":"74134",f85cca3b:"74146","9c1010f7":"74646",b8e8735c:"74696",c4b7406e:"74936","1aa6104b":"75049","4d29439d":"75124","6d96b411":"75272",f755a884:"75807","87bfefef":"75836",b570adc9:"75922",e4103a51:"75949","4ac6148f":"76148",c74d5e3d:"76162",fbf479b9:"76350","5b483024":"76373","2b31bbe1":"76573","69d4b55a":"76597","1f45bfa9":"76629","254b07d4":"76673",b4632e35:"76847","4d7553bb":"76927","831d0057":"77091","707b92ce":"77204","7ded32e9":"77220","467c34f2":"77314","50efa68a":"77321","08440b71":"77481",f9377955:"77800",ea075918:"77815",f52989a7:"77925","9b7a6760":"77989","2478852b":"78049","4d8e6a66":"78129","6e7377a1":"78190",c65e3ea9:"78328",c9d639a6:"78544","7d3c65f4":"78625","3e510822":"78809",a94703ab:"79048","42d6648b":"79075","8c623740":"79382",a7e44d9e:"80334","114a55b5":"80385",c5f21ea6:"80636","5b5a2815":"80684","94ad216f":"81032","5765ff9f":"81413",a0a49e6e:"81590",bcea90b8:"81837","1e4232ab":"81953","015a12ec":"82381",df943bb5:"82486","9639b4bb":"82664",e7a2ccdf:"82706","400e5e05":"82901",a72a19ab:"83039","60c49928":"83168",f8abf08c:"83197","14469aa3":"83276","7e272f4c":"83673","0e384e19":"83976","48dd8fe6":"84064","6556adbb":"84138",baeecf43:"84362","7b505d62":"84536",f16a979a:"84581",b604b309:"84943",e9524228:"84968",c8b82856:"85183","16cc8cf5":"85268",f9498ed2:"85342","13d21b80":"85460",e83415f2:"85499","12d92307":"85789",e5d2d428:"85841","3036cc63":"85894",dd11fd39:"85907",b6f12020:"85964","4b0140ca":"86012",a9687b02:"86090","5fab0d7b":"86180","783965ce":"86249","8690fb5d":"86409","4ac9b518":"86514","4eb66dc8":"86577","5d30da0c":"86979","3794302a":"87152","2d91c4e0":"87189","76e51487":"87294","35d95d3a":"87517",f0f562a4:"87785","5b65a4a8":"87793",cf1a380b:"88345","575e5b46":"88518",a7c88a93:"88527",b965fcf2:"88614",db98811b:"88630","13b1a3fa":"88735","4c22038c":"88788",f55d3e7a:"88863",cbfda352:"88955","687577ad":"89052","3af33abc":"89695",a4b70c0e:"90031","87eb9014":"90033","304c2294":"90054",df5a394e:"90146",abb5965e:"90294","7569ca31":"90564","9bbbaa56":"90597","976e56d2":"90687",d4813f73:"90771","7bb51cbb":"90799","39efb958":"90878",a5017b85:"91074",de5cc829:"91344",f0864452:"91466","160053eb":"91603","6073880f":"91945","5c868d36":"91974","4871d8df":"92373","96c08df1":"92388","1ffd08f7":"92401","2cf7b004":"92813",f5e67f25:"92997",f7cc92e8:"93306","50662ffb":"93364","5c244a8a":"93505","782b2d66":"93860","97aced89":"93953","68bac681":"94072",b20ce122:"94270","11dd256b":"94298",cc531d35:"94506",ce9395e9:"94835","795bd4c9":"94878","7e8901cb":"94903","1b8ce8cc":"94944","96c285ca":"94992",ab53dc1b:"95020","18ad6322":"95594",c4703dab:"95611","191c6045":"95686","3f605b15":"95705","117b8318":"95734","962e3ba3":"95886","0cac68f9":"95941",def76093:"96057","4486aafe":"96444",d2f7be51:"96517","3c5be31c":"96524",e1b3512a:"96753","969ca81a":"96983",b93181d8:"96985",d1227148:"97146",bebddf70:"97149","349819cc":"97161",cd64df70:"97163","2487ef53":"97455","117cc3f1":"97666","598a57b2":"97860",e12be479:"97942",a1a710c7:"98064","84ddff5f":"98234",e9b84260:"98275","5bd7a5c6":"98376","8bec7861":"98451",c3f53926:"98766","5c41f114":"99126","6a613ac8":"99258",c45a4367:"99458","20b9b68d":"99554","5e411019":"99609",b03a6809:"99666",f7cc2be3:"99904",d3b48789:"99908","55110d5f":"99990"}[e]||e,r.p+r.u(e)},(()=>{var e={45354:0,71869:0};r.f.j=(a,c)=>{var b=r.o(e,a)?e[a]:void 0;if(0!==b)if(b)c.push(b[2]);else if(/^(45354|71869)$/.test(a))e[a]=0;else{var f=new Promise(((c,f)=>b=e[a]=[c,f]));c.push(b[2]=f);var d=r.p+r.u(a),t=new Error;r.l(d,(c=>{if(r.o(e,a)&&(0!==(b=e[a])&&(e[a]=void 0),b)){var f=c&&("load"===c.type?"missing":c.type),d=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+f+": "+d+")",t.name="ChunkLoadError",t.type=f,t.request=d,b[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var b,f,d=c[0],t=c[1],o=c[2],n=0;if(d.some((a=>0!==e[a]))){for(b in t)r.o(t,b)&&(r.m[b]=t[b]);if(o)var i=o(r)}for(a&&a(c);n Migration Guide | SeaSketch Geoprocessing - + diff --git a/docs/antimeridian/index.html b/docs/antimeridian/index.html index d89627f9f..a48a48a47 100644 --- a/docs/antimeridian/index.html +++ b/docs/antimeridian/index.html @@ -4,7 +4,7 @@ Antimeridian | SeaSketch Geoprocessing - + diff --git a/docs/architecture/index.html b/docs/architecture/index.html index b5db24480..db81b60f7 100644 --- a/docs/architecture/index.html +++ b/docs/architecture/index.html @@ -4,7 +4,7 @@ Architecture | SeaSketch Geoprocessing - + diff --git a/docs/cli/index.html b/docs/cli/index.html index 595e1efcc..22e1e1eb7 100644 --- a/docs/cli/index.html +++ b/docs/cli/index.html @@ -4,7 +4,7 @@ Command Line Interface | SeaSketch Geoprocessing - + diff --git a/docs/concepts/index.html b/docs/concepts/index.html index c0ead01e6..8f7f42fa1 100644 --- a/docs/concepts/index.html +++ b/docs/concepts/index.html @@ -4,7 +4,7 @@ Concepts | SeaSketch Geoprocessing - + diff --git a/docs/contributing/index.html b/docs/contributing/index.html index 49cac02db..2b38f77a3 100644 --- a/docs/contributing/index.html +++ b/docs/contributing/index.html @@ -4,7 +4,7 @@ Contributing | SeaSketch Geoprocessing - + diff --git a/docs/extending/index.html b/docs/extending/index.html index d53e78102..e38b6a914 100644 --- a/docs/extending/index.html +++ b/docs/extending/index.html @@ -4,7 +4,7 @@ Extending | SeaSketch Geoprocessing - + diff --git a/docs/gip/GIP-1-i18n/index.html b/docs/gip/GIP-1-i18n/index.html index 6e7022452..9d5859b9c 100644 --- a/docs/gip/GIP-1-i18n/index.html +++ b/docs/gip/GIP-1-i18n/index.html @@ -4,7 +4,7 @@ i18n | SeaSketch Geoprocessing - + diff --git a/docs/gip/index.html b/docs/gip/index.html index a68ee34c1..f49f1079a 100644 --- a/docs/gip/index.html +++ b/docs/gip/index.html @@ -4,7 +4,7 @@ GIP | SeaSketch Geoprocessing - + diff --git a/docs/index.html b/docs/index.html index c18f098f8..ca222cfc9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -4,7 +4,7 @@ Introduction | SeaSketch Geoprocessing - + diff --git a/docs/intro/index.html b/docs/intro/index.html index b80c486b3..12e870fa2 100644 --- a/docs/intro/index.html +++ b/docs/intro/index.html @@ -4,7 +4,7 @@ Tutorial Intro | SeaSketch Geoprocessing - + diff --git a/docs/limits/index.html b/docs/limits/index.html index ab9d958c9..8566ecde9 100644 --- a/docs/limits/index.html +++ b/docs/limits/index.html @@ -4,7 +4,7 @@ Edge Cases & Limits | SeaSketch Geoprocessing - + diff --git a/docs/next/EdgesAndLimits/index.html b/docs/next/EdgesAndLimits/index.html index 8f8dfc8af..691e82b86 100644 --- a/docs/next/EdgesAndLimits/index.html +++ b/docs/next/EdgesAndLimits/index.html @@ -4,7 +4,7 @@ Accuracy/Limitations | SeaSketch Geoprocessing - + diff --git a/docs/next/antimeridian/index.html b/docs/next/antimeridian/index.html index c3a17e53f..d7bef5be1 100644 --- a/docs/next/antimeridian/index.html +++ b/docs/next/antimeridian/index.html @@ -4,7 +4,7 @@ Antimeridian | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-core/index.html b/docs/next/api/client-core/index.html index baf8074dc..459f4a536 100644 --- a/docs/next/api/client-core/index.html +++ b/docs/next/api/client-core/index.html @@ -4,7 +4,7 @@ client-core | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/classes/ReportError/index.html b/docs/next/api/client-ui/classes/ReportError/index.html index 8a40cea11..c9e2a6895 100644 --- a/docs/next/api/client-ui/classes/ReportError/index.html +++ b/docs/next/api/client-ui/classes/ReportError/index.html @@ -4,7 +4,7 @@ ReportError | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/App/index.html b/docs/next/api/client-ui/functions/App/index.html index c82148015..9d2136eec 100644 --- a/docs/next/api/client-ui/functions/App/index.html +++ b/docs/next/api/client-ui/functions/App/index.html @@ -4,7 +4,7 @@ App() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Card/index.html b/docs/next/api/client-ui/functions/Card/index.html index 99225f6e4..ada9a94de 100644 --- a/docs/next/api/client-ui/functions/Card/index.html +++ b/docs/next/api/client-ui/functions/Card/index.html @@ -4,7 +4,7 @@ Card() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/CardDecorator/index.html b/docs/next/api/client-ui/functions/CardDecorator/index.html index 1cd2907df..916545015 100644 --- a/docs/next/api/client-ui/functions/CardDecorator/index.html +++ b/docs/next/api/client-ui/functions/CardDecorator/index.html @@ -4,7 +4,7 @@ CardDecorator() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ChartLegend/index.html b/docs/next/api/client-ui/functions/ChartLegend/index.html index 1dbe7419d..5c7864523 100644 --- a/docs/next/api/client-ui/functions/ChartLegend/index.html +++ b/docs/next/api/client-ui/functions/ChartLegend/index.html @@ -4,7 +4,7 @@ ChartLegend() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/CheckboxGroup/index.html b/docs/next/api/client-ui/functions/CheckboxGroup/index.html index 1dfdec99c..30eaeee59 100644 --- a/docs/next/api/client-ui/functions/CheckboxGroup/index.html +++ b/docs/next/api/client-ui/functions/CheckboxGroup/index.html @@ -4,7 +4,7 @@ CheckboxGroup() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Circle/index.html b/docs/next/api/client-ui/functions/Circle/index.html index 155ce1eca..f77b8ce72 100644 --- a/docs/next/api/client-ui/functions/Circle/index.html +++ b/docs/next/api/client-ui/functions/Circle/index.html @@ -4,7 +4,7 @@ Circle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ClassTable/index.html b/docs/next/api/client-ui/functions/ClassTable/index.html index 70c3df07f..86bf8e8ff 100644 --- a/docs/next/api/client-ui/functions/ClassTable/index.html +++ b/docs/next/api/client-ui/functions/ClassTable/index.html @@ -4,7 +4,7 @@ ClassTable() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ClassTableStyled/index.html b/docs/next/api/client-ui/functions/ClassTableStyled/index.html index 2239f828d..3ce1f78ab 100644 --- a/docs/next/api/client-ui/functions/ClassTableStyled/index.html +++ b/docs/next/api/client-ui/functions/ClassTableStyled/index.html @@ -4,7 +4,7 @@ ClassTableStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Collapse/index.html b/docs/next/api/client-ui/functions/Collapse/index.html index 71b9712b0..f2916d494 100644 --- a/docs/next/api/client-ui/functions/Collapse/index.html +++ b/docs/next/api/client-ui/functions/Collapse/index.html @@ -4,7 +4,7 @@ Collapse() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/CollapseGroup/index.html b/docs/next/api/client-ui/functions/CollapseGroup/index.html index 6acae8453..85e1c31bb 100644 --- a/docs/next/api/client-ui/functions/CollapseGroup/index.html +++ b/docs/next/api/client-ui/functions/CollapseGroup/index.html @@ -4,7 +4,7 @@ CollapseGroup() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/DataDownload/index.html b/docs/next/api/client-ui/functions/DataDownload/index.html index a74875639..6d02b1d53 100644 --- a/docs/next/api/client-ui/functions/DataDownload/index.html +++ b/docs/next/api/client-ui/functions/DataDownload/index.html @@ -4,7 +4,7 @@ DataDownload() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/DataDownloadToolbar/index.html b/docs/next/api/client-ui/functions/DataDownloadToolbar/index.html index 478b2c657..ecfba0c41 100644 --- a/docs/next/api/client-ui/functions/DataDownloadToolbar/index.html +++ b/docs/next/api/client-ui/functions/DataDownloadToolbar/index.html @@ -4,7 +4,7 @@ DataDownloadToolbar() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Dropdown/index.html b/docs/next/api/client-ui/functions/Dropdown/index.html index d3983537b..2033c6627 100644 --- a/docs/next/api/client-ui/functions/Dropdown/index.html +++ b/docs/next/api/client-ui/functions/Dropdown/index.html @@ -4,7 +4,7 @@ Dropdown() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/DropdownContainer/index.html b/docs/next/api/client-ui/functions/DropdownContainer/index.html index 13b56075b..7385cfa22 100644 --- a/docs/next/api/client-ui/functions/DropdownContainer/index.html +++ b/docs/next/api/client-ui/functions/DropdownContainer/index.html @@ -4,7 +4,7 @@ DropdownContainer() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/DropdownItem/index.html b/docs/next/api/client-ui/functions/DropdownItem/index.html index a3be761a3..cf2f45f91 100644 --- a/docs/next/api/client-ui/functions/DropdownItem/index.html +++ b/docs/next/api/client-ui/functions/DropdownItem/index.html @@ -4,7 +4,7 @@ DropdownItem() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/DropdownTrigger/index.html b/docs/next/api/client-ui/functions/DropdownTrigger/index.html index 17d4f5702..59fcb3d91 100644 --- a/docs/next/api/client-ui/functions/DropdownTrigger/index.html +++ b/docs/next/api/client-ui/functions/DropdownTrigger/index.html @@ -4,7 +4,7 @@ DropdownTrigger() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ErrorStatus/index.html b/docs/next/api/client-ui/functions/ErrorStatus/index.html index 0b56122ef..dd6a757df 100644 --- a/docs/next/api/client-ui/functions/ErrorStatus/index.html +++ b/docs/next/api/client-ui/functions/ErrorStatus/index.html @@ -4,7 +4,7 @@ ErrorStatus() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/EstimateLabel/index.html b/docs/next/api/client-ui/functions/EstimateLabel/index.html index c3e01e524..62718f19c 100644 --- a/docs/next/api/client-ui/functions/EstimateLabel/index.html +++ b/docs/next/api/client-ui/functions/EstimateLabel/index.html @@ -4,7 +4,7 @@ EstimateLabel() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/FilterSelectTable/index.html b/docs/next/api/client-ui/functions/FilterSelectTable/index.html index b2dea1330..83a18b122 100644 --- a/docs/next/api/client-ui/functions/FilterSelectTable/index.html +++ b/docs/next/api/client-ui/functions/FilterSelectTable/index.html @@ -4,7 +4,7 @@ FilterSelectTable() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/FilterSelectTableStyled/index.html b/docs/next/api/client-ui/functions/FilterSelectTableStyled/index.html index 03f842741..9b5b7f92b 100644 --- a/docs/next/api/client-ui/functions/FilterSelectTableStyled/index.html +++ b/docs/next/api/client-ui/functions/FilterSelectTableStyled/index.html @@ -4,7 +4,7 @@ FilterSelectTableStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/GeographySwitcher/index.html b/docs/next/api/client-ui/functions/GeographySwitcher/index.html index 36eb3ccb3..1f6bd9346 100644 --- a/docs/next/api/client-ui/functions/GeographySwitcher/index.html +++ b/docs/next/api/client-ui/functions/GeographySwitcher/index.html @@ -4,7 +4,7 @@ GeographySwitcher() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/GreenPill/index.html b/docs/next/api/client-ui/functions/GreenPill/index.html index a1eb9556e..1862bf834 100644 --- a/docs/next/api/client-ui/functions/GreenPill/index.html +++ b/docs/next/api/client-ui/functions/GreenPill/index.html @@ -4,7 +4,7 @@ GreenPill() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/GroupCircle/index.html b/docs/next/api/client-ui/functions/GroupCircle/index.html index 21c6823f5..e64f5f2aa 100644 --- a/docs/next/api/client-ui/functions/GroupCircle/index.html +++ b/docs/next/api/client-ui/functions/GroupCircle/index.html @@ -4,7 +4,7 @@ GroupCircle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/GroupCircleRow/index.html b/docs/next/api/client-ui/functions/GroupCircleRow/index.html index b2ca704b5..e9b451083 100644 --- a/docs/next/api/client-ui/functions/GroupCircleRow/index.html +++ b/docs/next/api/client-ui/functions/GroupCircleRow/index.html @@ -4,7 +4,7 @@ GroupCircleRow() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/GroupPill/index.html b/docs/next/api/client-ui/functions/GroupPill/index.html index 49554d9c3..a33f1f34b 100644 --- a/docs/next/api/client-ui/functions/GroupPill/index.html +++ b/docs/next/api/client-ui/functions/GroupPill/index.html @@ -4,7 +4,7 @@ GroupPill() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/HorizontalStackedBar/index.html b/docs/next/api/client-ui/functions/HorizontalStackedBar/index.html index 1e3a07b82..6d7d85ea3 100644 --- a/docs/next/api/client-ui/functions/HorizontalStackedBar/index.html +++ b/docs/next/api/client-ui/functions/HorizontalStackedBar/index.html @@ -4,7 +4,7 @@ HorizontalStackedBar() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/InfoStatus/index.html b/docs/next/api/client-ui/functions/InfoStatus/index.html index a23ba6701..4484d8a28 100644 --- a/docs/next/api/client-ui/functions/InfoStatus/index.html +++ b/docs/next/api/client-ui/functions/InfoStatus/index.html @@ -4,7 +4,7 @@ InfoStatus() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/IucnActivitiesCard/index.html b/docs/next/api/client-ui/functions/IucnActivitiesCard/index.html index b415d5d17..3acf6a115 100644 --- a/docs/next/api/client-ui/functions/IucnActivitiesCard/index.html +++ b/docs/next/api/client-ui/functions/IucnActivitiesCard/index.html @@ -4,7 +4,7 @@ IucnActivitiesCard() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/IucnDesignationTable/index.html b/docs/next/api/client-ui/functions/IucnDesignationTable/index.html index 4dd9bf022..e8512cd38 100644 --- a/docs/next/api/client-ui/functions/IucnDesignationTable/index.html +++ b/docs/next/api/client-ui/functions/IucnDesignationTable/index.html @@ -4,7 +4,7 @@ IucnDesignationTable() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/IucnLevelCircle/index.html b/docs/next/api/client-ui/functions/IucnLevelCircle/index.html index 74e5272a0..900aacd30 100644 --- a/docs/next/api/client-ui/functions/IucnLevelCircle/index.html +++ b/docs/next/api/client-ui/functions/IucnLevelCircle/index.html @@ -4,7 +4,7 @@ IucnLevelCircle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/IucnLevelCircleRow/index.html b/docs/next/api/client-ui/functions/IucnLevelCircleRow/index.html index 56d3ee7b6..4eaf26a95 100644 --- a/docs/next/api/client-ui/functions/IucnLevelCircleRow/index.html +++ b/docs/next/api/client-ui/functions/IucnLevelCircleRow/index.html @@ -4,7 +4,7 @@ IucnLevelCircleRow() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/IucnLevelPill/index.html b/docs/next/api/client-ui/functions/IucnLevelPill/index.html index 74b0850d0..847d473f2 100644 --- a/docs/next/api/client-ui/functions/IucnLevelPill/index.html +++ b/docs/next/api/client-ui/functions/IucnLevelPill/index.html @@ -4,7 +4,7 @@ IucnLevelPill() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/IucnMatrix/index.html b/docs/next/api/client-ui/functions/IucnMatrix/index.html index 5b9c85c33..55a44d50b 100644 --- a/docs/next/api/client-ui/functions/IucnMatrix/index.html +++ b/docs/next/api/client-ui/functions/IucnMatrix/index.html @@ -4,7 +4,7 @@ IucnMatrix() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/KeySection/index.html b/docs/next/api/client-ui/functions/KeySection/index.html index b905d8844..5fbe07c28 100644 --- a/docs/next/api/client-ui/functions/KeySection/index.html +++ b/docs/next/api/client-ui/functions/KeySection/index.html @@ -4,7 +4,7 @@ KeySection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/LanguageSwitcher/index.html b/docs/next/api/client-ui/functions/LanguageSwitcher/index.html index 0be9a1bab..5a4e8648a 100644 --- a/docs/next/api/client-ui/functions/LanguageSwitcher/index.html +++ b/docs/next/api/client-ui/functions/LanguageSwitcher/index.html @@ -4,7 +4,7 @@ LanguageSwitcher() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/LayerToggle/index.html b/docs/next/api/client-ui/functions/LayerToggle/index.html index 591638779..a8cf1e894 100644 --- a/docs/next/api/client-ui/functions/LayerToggle/index.html +++ b/docs/next/api/client-ui/functions/LayerToggle/index.html @@ -4,7 +4,7 @@ LayerToggle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ObjectiveStatus/index.html b/docs/next/api/client-ui/functions/ObjectiveStatus/index.html index 8c0826ad1..4f5614a0e 100644 --- a/docs/next/api/client-ui/functions/ObjectiveStatus/index.html +++ b/docs/next/api/client-ui/functions/ObjectiveStatus/index.html @@ -4,7 +4,7 @@ ObjectiveStatus() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Pill/index.html b/docs/next/api/client-ui/functions/Pill/index.html index 869c4e473..e252d4b8c 100644 --- a/docs/next/api/client-ui/functions/Pill/index.html +++ b/docs/next/api/client-ui/functions/Pill/index.html @@ -4,7 +4,7 @@ Pill() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/PillColumn/index.html b/docs/next/api/client-ui/functions/PillColumn/index.html index 55f165e24..c8f2a8cb8 100644 --- a/docs/next/api/client-ui/functions/PillColumn/index.html +++ b/docs/next/api/client-ui/functions/PillColumn/index.html @@ -4,7 +4,7 @@ PillColumn() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/PointyCircle/index.html b/docs/next/api/client-ui/functions/PointyCircle/index.html index d910876db..b703be2d6 100644 --- a/docs/next/api/client-ui/functions/PointyCircle/index.html +++ b/docs/next/api/client-ui/functions/PointyCircle/index.html @@ -4,7 +4,7 @@ PointyCircle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ProgressBar/index.html b/docs/next/api/client-ui/functions/ProgressBar/index.html index adc06915d..e970020b6 100644 --- a/docs/next/api/client-ui/functions/ProgressBar/index.html +++ b/docs/next/api/client-ui/functions/ProgressBar/index.html @@ -4,7 +4,7 @@ ProgressBar() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ProgressBarWrapper/index.html b/docs/next/api/client-ui/functions/ProgressBarWrapper/index.html index 2af4f5acf..e1b8e5041 100644 --- a/docs/next/api/client-ui/functions/ProgressBarWrapper/index.html +++ b/docs/next/api/client-ui/functions/ProgressBarWrapper/index.html @@ -4,7 +4,7 @@ ProgressBarWrapper() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsActivitiesCard/index.html b/docs/next/api/client-ui/functions/RbcsActivitiesCard/index.html index 0572fafc8..554b31084 100644 --- a/docs/next/api/client-ui/functions/RbcsActivitiesCard/index.html +++ b/docs/next/api/client-ui/functions/RbcsActivitiesCard/index.html @@ -4,7 +4,7 @@ RbcsActivitiesCard() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsIcon/index.html b/docs/next/api/client-ui/functions/RbcsIcon/index.html index 00954bf99..672130553 100644 --- a/docs/next/api/client-ui/functions/RbcsIcon/index.html +++ b/docs/next/api/client-ui/functions/RbcsIcon/index.html @@ -4,7 +4,7 @@ RbcsIcon() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsLearnMore/index.html b/docs/next/api/client-ui/functions/RbcsLearnMore/index.html index c6a828f62..ebdec347d 100644 --- a/docs/next/api/client-ui/functions/RbcsLearnMore/index.html +++ b/docs/next/api/client-ui/functions/RbcsLearnMore/index.html @@ -4,7 +4,7 @@ RbcsLearnMore() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsMpaClassPanel/index.html b/docs/next/api/client-ui/functions/RbcsMpaClassPanel/index.html index ca9cb642e..7a6d3d46d 100644 --- a/docs/next/api/client-ui/functions/RbcsMpaClassPanel/index.html +++ b/docs/next/api/client-ui/functions/RbcsMpaClassPanel/index.html @@ -4,7 +4,7 @@ RbcsMpaClassPanel() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsMpaObjectiveStatus/index.html b/docs/next/api/client-ui/functions/RbcsMpaObjectiveStatus/index.html index a46c16189..c6160823d 100644 --- a/docs/next/api/client-ui/functions/RbcsMpaObjectiveStatus/index.html +++ b/docs/next/api/client-ui/functions/RbcsMpaObjectiveStatus/index.html @@ -4,7 +4,7 @@ RbcsMpaObjectiveStatus() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsNetworkObjectiveStatus/index.html b/docs/next/api/client-ui/functions/RbcsNetworkObjectiveStatus/index.html index 81d089554..f8db8075f 100644 --- a/docs/next/api/client-ui/functions/RbcsNetworkObjectiveStatus/index.html +++ b/docs/next/api/client-ui/functions/RbcsNetworkObjectiveStatus/index.html @@ -4,7 +4,7 @@ RbcsNetworkObjectiveStatus() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsZoneClassPanel/index.html b/docs/next/api/client-ui/functions/RbcsZoneClassPanel/index.html index 80edebd72..f2662d98d 100644 --- a/docs/next/api/client-ui/functions/RbcsZoneClassPanel/index.html +++ b/docs/next/api/client-ui/functions/RbcsZoneClassPanel/index.html @@ -4,7 +4,7 @@ RbcsZoneClassPanel() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/RbcsZoneRegIcon/index.html b/docs/next/api/client-ui/functions/RbcsZoneRegIcon/index.html index d77af6437..93d5a2c25 100644 --- a/docs/next/api/client-ui/functions/RbcsZoneRegIcon/index.html +++ b/docs/next/api/client-ui/functions/RbcsZoneRegIcon/index.html @@ -4,7 +4,7 @@ RbcsZoneRegIcon() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ReportChartFigure/index.html b/docs/next/api/client-ui/functions/ReportChartFigure/index.html index f642064b4..9c69f098f 100644 --- a/docs/next/api/client-ui/functions/ReportChartFigure/index.html +++ b/docs/next/api/client-ui/functions/ReportChartFigure/index.html @@ -4,7 +4,7 @@ ReportChartFigure() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ReportDecorator/index.html b/docs/next/api/client-ui/functions/ReportDecorator/index.html index 2fc29f16d..e5ccb0b6b 100644 --- a/docs/next/api/client-ui/functions/ReportDecorator/index.html +++ b/docs/next/api/client-ui/functions/ReportDecorator/index.html @@ -4,7 +4,7 @@ ReportDecorator() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ReportPage/index.html b/docs/next/api/client-ui/functions/ReportPage/index.html index a3b08f89c..265e4effe 100644 --- a/docs/next/api/client-ui/functions/ReportPage/index.html +++ b/docs/next/api/client-ui/functions/ReportPage/index.html @@ -4,7 +4,7 @@ ReportPage() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ReportStoryLayout/index.html b/docs/next/api/client-ui/functions/ReportStoryLayout/index.html index ce096c798..af4399855 100644 --- a/docs/next/api/client-ui/functions/ReportStoryLayout/index.html +++ b/docs/next/api/client-ui/functions/ReportStoryLayout/index.html @@ -4,7 +4,7 @@ ReportStoryLayout() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ReportTableStyled/index.html b/docs/next/api/client-ui/functions/ReportTableStyled/index.html index 5169bbe3e..0ae402726 100644 --- a/docs/next/api/client-ui/functions/ReportTableStyled/index.html +++ b/docs/next/api/client-ui/functions/ReportTableStyled/index.html @@ -4,7 +4,7 @@ ReportTableStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ReportTextDirection/index.html b/docs/next/api/client-ui/functions/ReportTextDirection/index.html index 6ff4b6b70..b5eae08a6 100644 --- a/docs/next/api/client-ui/functions/ReportTextDirection/index.html +++ b/docs/next/api/client-ui/functions/ReportTextDirection/index.html @@ -4,7 +4,7 @@ ReportTextDirection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ResultsCard/index.html b/docs/next/api/client-ui/functions/ResultsCard/index.html index 820c5ebfc..543ab2ae4 100644 --- a/docs/next/api/client-ui/functions/ResultsCard/index.html +++ b/docs/next/api/client-ui/functions/ResultsCard/index.html @@ -4,7 +4,7 @@ ResultsCard() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SegmentControl/index.html b/docs/next/api/client-ui/functions/SegmentControl/index.html index e5c4618d7..e34993080 100644 --- a/docs/next/api/client-ui/functions/SegmentControl/index.html +++ b/docs/next/api/client-ui/functions/SegmentControl/index.html @@ -4,7 +4,7 @@ SegmentControl() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SimpleButton/index.html b/docs/next/api/client-ui/functions/SimpleButton/index.html index 816319f56..60409356a 100644 --- a/docs/next/api/client-ui/functions/SimpleButton/index.html +++ b/docs/next/api/client-ui/functions/SimpleButton/index.html @@ -4,7 +4,7 @@ SimpleButton() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SimpleButtonStyled/index.html b/docs/next/api/client-ui/functions/SimpleButtonStyled/index.html index f25a29c03..58e584744 100644 --- a/docs/next/api/client-ui/functions/SimpleButtonStyled/index.html +++ b/docs/next/api/client-ui/functions/SimpleButtonStyled/index.html @@ -4,7 +4,7 @@ SimpleButtonStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Skeleton/index.html b/docs/next/api/client-ui/functions/Skeleton/index.html index e4da726e8..529a291d8 100644 --- a/docs/next/api/client-ui/functions/Skeleton/index.html +++ b/docs/next/api/client-ui/functions/Skeleton/index.html @@ -4,7 +4,7 @@ Skeleton() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SketchAttributesCard/index.html b/docs/next/api/client-ui/functions/SketchAttributesCard/index.html index bc7b7ee1f..742169e9b 100644 --- a/docs/next/api/client-ui/functions/SketchAttributesCard/index.html +++ b/docs/next/api/client-ui/functions/SketchAttributesCard/index.html @@ -4,7 +4,7 @@ SketchAttributesCard() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SketchClassTable/index.html b/docs/next/api/client-ui/functions/SketchClassTable/index.html index ac3f9bd9c..6fa597bcb 100644 --- a/docs/next/api/client-ui/functions/SketchClassTable/index.html +++ b/docs/next/api/client-ui/functions/SketchClassTable/index.html @@ -4,7 +4,7 @@ SketchClassTable() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SketchClassTableStyled/index.html b/docs/next/api/client-ui/functions/SketchClassTableStyled/index.html index 6fca1d530..7403fc64e 100644 --- a/docs/next/api/client-ui/functions/SketchClassTableStyled/index.html +++ b/docs/next/api/client-ui/functions/SketchClassTableStyled/index.html @@ -4,7 +4,7 @@ SketchClassTableStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/SmallReportTableStyled/index.html b/docs/next/api/client-ui/functions/SmallReportTableStyled/index.html index 7b4d08383..d49c66037 100644 --- a/docs/next/api/client-ui/functions/SmallReportTableStyled/index.html +++ b/docs/next/api/client-ui/functions/SmallReportTableStyled/index.html @@ -4,7 +4,7 @@ SmallReportTableStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/StyledCircle/index.html b/docs/next/api/client-ui/functions/StyledCircle/index.html index 646000ccd..70fc3ebfd 100644 --- a/docs/next/api/client-ui/functions/StyledCircle/index.html +++ b/docs/next/api/client-ui/functions/StyledCircle/index.html @@ -4,7 +4,7 @@ StyledCircle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/StyledPill/index.html b/docs/next/api/client-ui/functions/StyledPill/index.html index 196146856..f2b69ada3 100644 --- a/docs/next/api/client-ui/functions/StyledPill/index.html +++ b/docs/next/api/client-ui/functions/StyledPill/index.html @@ -4,7 +4,7 @@ StyledPill() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/StyledTwoColorPointyCircle/index.html b/docs/next/api/client-ui/functions/StyledTwoColorPointyCircle/index.html index 01dfab175..72af57c6d 100644 --- a/docs/next/api/client-ui/functions/StyledTwoColorPointyCircle/index.html +++ b/docs/next/api/client-ui/functions/StyledTwoColorPointyCircle/index.html @@ -4,7 +4,7 @@ StyledTwoColorPointyCircle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Table/index.html b/docs/next/api/client-ui/functions/Table/index.html index c049e076a..7cb7eb36d 100644 --- a/docs/next/api/client-ui/functions/Table/index.html +++ b/docs/next/api/client-ui/functions/Table/index.html @@ -4,7 +4,7 @@ Table() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/TableStyled/index.html b/docs/next/api/client-ui/functions/TableStyled/index.html index 446ba1b94..e4c27bdc2 100644 --- a/docs/next/api/client-ui/functions/TableStyled/index.html +++ b/docs/next/api/client-ui/functions/TableStyled/index.html @@ -4,7 +4,7 @@ TableStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Toolbar/index.html b/docs/next/api/client-ui/functions/Toolbar/index.html index e0f17772b..ff3243c02 100644 --- a/docs/next/api/client-ui/functions/Toolbar/index.html +++ b/docs/next/api/client-ui/functions/Toolbar/index.html @@ -4,7 +4,7 @@ Toolbar() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ToolbarCard/index.html b/docs/next/api/client-ui/functions/ToolbarCard/index.html index 089f252b2..4c1dca9c3 100644 --- a/docs/next/api/client-ui/functions/ToolbarCard/index.html +++ b/docs/next/api/client-ui/functions/ToolbarCard/index.html @@ -4,7 +4,7 @@ ToolbarCard() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/ToolbarStyled/index.html b/docs/next/api/client-ui/functions/ToolbarStyled/index.html index cce04d0ab..241d5364a 100644 --- a/docs/next/api/client-ui/functions/ToolbarStyled/index.html +++ b/docs/next/api/client-ui/functions/ToolbarStyled/index.html @@ -4,7 +4,7 @@ ToolbarStyled() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Tooltip/index.html b/docs/next/api/client-ui/functions/Tooltip/index.html index 122389cd1..384344f23 100644 --- a/docs/next/api/client-ui/functions/Tooltip/index.html +++ b/docs/next/api/client-ui/functions/Tooltip/index.html @@ -4,7 +4,7 @@ Tooltip() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/TooltipContainer/index.html b/docs/next/api/client-ui/functions/TooltipContainer/index.html index af7a706cc..042f034e0 100644 --- a/docs/next/api/client-ui/functions/TooltipContainer/index.html +++ b/docs/next/api/client-ui/functions/TooltipContainer/index.html @@ -4,7 +4,7 @@ TooltipContainer() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/TooltipItem/index.html b/docs/next/api/client-ui/functions/TooltipItem/index.html index ba2a26784..4f18eebd0 100644 --- a/docs/next/api/client-ui/functions/TooltipItem/index.html +++ b/docs/next/api/client-ui/functions/TooltipItem/index.html @@ -4,7 +4,7 @@ TooltipItem() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/TooltipTrigger/index.html b/docs/next/api/client-ui/functions/TooltipTrigger/index.html index a062a282a..906637b3d 100644 --- a/docs/next/api/client-ui/functions/TooltipTrigger/index.html +++ b/docs/next/api/client-ui/functions/TooltipTrigger/index.html @@ -4,7 +4,7 @@ TooltipTrigger() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/Translator/index.html b/docs/next/api/client-ui/functions/Translator/index.html index 8fd0c6862..7596c6260 100644 --- a/docs/next/api/client-ui/functions/Translator/index.html +++ b/docs/next/api/client-ui/functions/Translator/index.html @@ -4,7 +4,7 @@ Translator() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/TwoColorPointyCircle/index.html b/docs/next/api/client-ui/functions/TwoColorPointyCircle/index.html index 67ab27b20..9b3eda1c1 100644 --- a/docs/next/api/client-ui/functions/TwoColorPointyCircle/index.html +++ b/docs/next/api/client-ui/functions/TwoColorPointyCircle/index.html @@ -4,7 +4,7 @@ TwoColorPointyCircle() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/VerticalSpacer/index.html b/docs/next/api/client-ui/functions/VerticalSpacer/index.html index 387a2d82f..50b2f2055 100644 --- a/docs/next/api/client-ui/functions/VerticalSpacer/index.html +++ b/docs/next/api/client-ui/functions/VerticalSpacer/index.html @@ -4,7 +4,7 @@ VerticalSpacer() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/WarningPill/index.html b/docs/next/api/client-ui/functions/WarningPill/index.html index 6842ec635..650fed200 100644 --- a/docs/next/api/client-ui/functions/WarningPill/index.html +++ b/docs/next/api/client-ui/functions/WarningPill/index.html @@ -4,7 +4,7 @@ WarningPill() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/WatersDiagram/index.html b/docs/next/api/client-ui/functions/WatersDiagram/index.html index a7206fcef..432d0bc1b 100644 --- a/docs/next/api/client-ui/functions/WatersDiagram/index.html +++ b/docs/next/api/client-ui/functions/WatersDiagram/index.html @@ -4,7 +4,7 @@ WatersDiagram() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/createReportDecorator/index.html b/docs/next/api/client-ui/functions/createReportDecorator/index.html index 3833df270..2ea11489c 100644 --- a/docs/next/api/client-ui/functions/createReportDecorator/index.html +++ b/docs/next/api/client-ui/functions/createReportDecorator/index.html @@ -4,7 +4,7 @@ createReportDecorator() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/finishTask/index.html b/docs/next/api/client-ui/functions/finishTask/index.html index 8681c27f6..f6c5ae29f 100644 --- a/docs/next/api/client-ui/functions/finishTask/index.html +++ b/docs/next/api/client-ui/functions/finishTask/index.html @@ -4,7 +4,7 @@ finishTask() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/runTask/index.html b/docs/next/api/client-ui/functions/runTask/index.html index 5bc21d880..dcab7c1ac 100644 --- a/docs/next/api/client-ui/functions/runTask/index.html +++ b/docs/next/api/client-ui/functions/runTask/index.html @@ -4,7 +4,7 @@ runTask() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/useCheckboxes/index.html b/docs/next/api/client-ui/functions/useCheckboxes/index.html index f88ae58f7..b50e826aa 100644 --- a/docs/next/api/client-ui/functions/useCheckboxes/index.html +++ b/docs/next/api/client-ui/functions/useCheckboxes/index.html @@ -4,7 +4,7 @@ useCheckboxes() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/useFunction/index.html b/docs/next/api/client-ui/functions/useFunction/index.html index fdddf6dc3..c3b958e53 100644 --- a/docs/next/api/client-ui/functions/useFunction/index.html +++ b/docs/next/api/client-ui/functions/useFunction/index.html @@ -4,7 +4,7 @@ useFunction() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/useLanguage/index.html b/docs/next/api/client-ui/functions/useLanguage/index.html index f2027c5ea..4faa6d671 100644 --- a/docs/next/api/client-ui/functions/useLanguage/index.html +++ b/docs/next/api/client-ui/functions/useLanguage/index.html @@ -4,7 +4,7 @@ useLanguage() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/functions/useSketchProperties/index.html b/docs/next/api/client-ui/functions/useSketchProperties/index.html index 412ae9e60..d9c3d92c7 100644 --- a/docs/next/api/client-ui/functions/useSketchProperties/index.html +++ b/docs/next/api/client-ui/functions/useSketchProperties/index.html @@ -4,7 +4,7 @@ useSketchProperties() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/index.html b/docs/next/api/client-ui/index.html index c803bf5c1..bf98a421e 100644 --- a/docs/next/api/client-ui/index.html +++ b/docs/next/api/client-ui/index.html @@ -4,7 +4,7 @@ client-ui | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/AppProps/index.html b/docs/next/api/client-ui/interfaces/AppProps/index.html index b77fffb71..53686fa7a 100644 --- a/docs/next/api/client-ui/interfaces/AppProps/index.html +++ b/docs/next/api/client-ui/interfaces/AppProps/index.html @@ -4,7 +4,7 @@ AppProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/CardProps/index.html b/docs/next/api/client-ui/interfaces/CardProps/index.html index 407c9f577..9b47bb27d 100644 --- a/docs/next/api/client-ui/interfaces/CardProps/index.html +++ b/docs/next/api/client-ui/interfaces/CardProps/index.html @@ -4,7 +4,7 @@ CardProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/CircleProps/index.html b/docs/next/api/client-ui/interfaces/CircleProps/index.html index 1340b5c2e..deb2f4e8c 100644 --- a/docs/next/api/client-ui/interfaces/CircleProps/index.html +++ b/docs/next/api/client-ui/interfaces/CircleProps/index.html @@ -4,7 +4,7 @@ CircleProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ClassTableColumnConfig/index.html b/docs/next/api/client-ui/interfaces/ClassTableColumnConfig/index.html index 5f7c9cc0b..cba730f0d 100644 --- a/docs/next/api/client-ui/interfaces/ClassTableColumnConfig/index.html +++ b/docs/next/api/client-ui/interfaces/ClassTableColumnConfig/index.html @@ -4,7 +4,7 @@ ClassTableColumnConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ClassTableProps/index.html b/docs/next/api/client-ui/interfaces/ClassTableProps/index.html index 9e4fde0d8..399ef2e5b 100644 --- a/docs/next/api/client-ui/interfaces/ClassTableProps/index.html +++ b/docs/next/api/client-ui/interfaces/ClassTableProps/index.html @@ -4,7 +4,7 @@ ClassTableProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/CollapseGroupProps/index.html b/docs/next/api/client-ui/interfaces/CollapseGroupProps/index.html index de58fc002..c7aec104e 100644 --- a/docs/next/api/client-ui/interfaces/CollapseGroupProps/index.html +++ b/docs/next/api/client-ui/interfaces/CollapseGroupProps/index.html @@ -4,7 +4,7 @@ CollapseGroupProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/CollapseProps/index.html b/docs/next/api/client-ui/interfaces/CollapseProps/index.html index b0d85f44a..a3fc687d5 100644 --- a/docs/next/api/client-ui/interfaces/CollapseProps/index.html +++ b/docs/next/api/client-ui/interfaces/CollapseProps/index.html @@ -4,7 +4,7 @@ CollapseProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/DataDownloadProps/index.html b/docs/next/api/client-ui/interfaces/DataDownloadProps/index.html index 167d8cb77..3b7070c84 100644 --- a/docs/next/api/client-ui/interfaces/DataDownloadProps/index.html +++ b/docs/next/api/client-ui/interfaces/DataDownloadProps/index.html @@ -4,7 +4,7 @@ DataDownloadProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/DataDownloadToolbarProps/index.html b/docs/next/api/client-ui/interfaces/DataDownloadToolbarProps/index.html index aed554556..1d6b1ba68 100644 --- a/docs/next/api/client-ui/interfaces/DataDownloadToolbarProps/index.html +++ b/docs/next/api/client-ui/interfaces/DataDownloadToolbarProps/index.html @@ -4,7 +4,7 @@ DataDownloadToolbarProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/DataFormatters/index.html b/docs/next/api/client-ui/interfaces/DataFormatters/index.html index 1271f7ed2..2a14f5bc6 100644 --- a/docs/next/api/client-ui/interfaces/DataFormatters/index.html +++ b/docs/next/api/client-ui/interfaces/DataFormatters/index.html @@ -4,7 +4,7 @@ DataFormatters | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/DownloadOption/index.html b/docs/next/api/client-ui/interfaces/DownloadOption/index.html index c85d8bad1..ab07e97af 100644 --- a/docs/next/api/client-ui/interfaces/DownloadOption/index.html +++ b/docs/next/api/client-ui/interfaces/DownloadOption/index.html @@ -4,7 +4,7 @@ DownloadOption | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/DropdownContainerProps/index.html b/docs/next/api/client-ui/interfaces/DropdownContainerProps/index.html index c8927d75e..f23c344b1 100644 --- a/docs/next/api/client-ui/interfaces/DropdownContainerProps/index.html +++ b/docs/next/api/client-ui/interfaces/DropdownContainerProps/index.html @@ -4,7 +4,7 @@ DropdownContainerProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/DropdownProps/index.html b/docs/next/api/client-ui/interfaces/DropdownProps/index.html index 95903c4cd..8a501d2e2 100644 --- a/docs/next/api/client-ui/interfaces/DropdownProps/index.html +++ b/docs/next/api/client-ui/interfaces/DropdownProps/index.html @@ -4,7 +4,7 @@ DropdownProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ErrorStatusProps/index.html b/docs/next/api/client-ui/interfaces/ErrorStatusProps/index.html index 17d45c2fe..99f9b48f0 100644 --- a/docs/next/api/client-ui/interfaces/ErrorStatusProps/index.html +++ b/docs/next/api/client-ui/interfaces/ErrorStatusProps/index.html @@ -4,7 +4,7 @@ ErrorStatusProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/FilterSelect/index.html b/docs/next/api/client-ui/interfaces/FilterSelect/index.html index 3e3d648dd..bbd027917 100644 --- a/docs/next/api/client-ui/interfaces/FilterSelect/index.html +++ b/docs/next/api/client-ui/interfaces/FilterSelect/index.html @@ -4,7 +4,7 @@ FilterSelect\<D\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/FilterSelectOption/index.html b/docs/next/api/client-ui/interfaces/FilterSelectOption/index.html index 0e9a06f35..0c4c7d89b 100644 --- a/docs/next/api/client-ui/interfaces/FilterSelectOption/index.html +++ b/docs/next/api/client-ui/interfaces/FilterSelectOption/index.html @@ -4,7 +4,7 @@ FilterSelectOption\<D\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/FilterSelectTableOptions/index.html b/docs/next/api/client-ui/interfaces/FilterSelectTableOptions/index.html index fbe8f1769..2cad9deeb 100644 --- a/docs/next/api/client-ui/interfaces/FilterSelectTableOptions/index.html +++ b/docs/next/api/client-ui/interfaces/FilterSelectTableOptions/index.html @@ -4,7 +4,7 @@ FilterSelectTableOptions\<D\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/GeographySwitcherProps/index.html b/docs/next/api/client-ui/interfaces/GeographySwitcherProps/index.html index ef2a1aa93..1dfaf6ec5 100644 --- a/docs/next/api/client-ui/interfaces/GeographySwitcherProps/index.html +++ b/docs/next/api/client-ui/interfaces/GeographySwitcherProps/index.html @@ -4,7 +4,7 @@ GeographySwitcherProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/GroupCircleProps/index.html b/docs/next/api/client-ui/interfaces/GroupCircleProps/index.html index cf235db91..0c4ce10a7 100644 --- a/docs/next/api/client-ui/interfaces/GroupCircleProps/index.html +++ b/docs/next/api/client-ui/interfaces/GroupCircleProps/index.html @@ -4,7 +4,7 @@ GroupCircleProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/GroupCircleRowProps/index.html b/docs/next/api/client-ui/interfaces/GroupCircleRowProps/index.html index d295ee84c..5c11cbfe7 100644 --- a/docs/next/api/client-ui/interfaces/GroupCircleRowProps/index.html +++ b/docs/next/api/client-ui/interfaces/GroupCircleRowProps/index.html @@ -4,7 +4,7 @@ GroupCircleRowProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/GroupPillProps/index.html b/docs/next/api/client-ui/interfaces/GroupPillProps/index.html index c43762391..ab7d7c31b 100644 --- a/docs/next/api/client-ui/interfaces/GroupPillProps/index.html +++ b/docs/next/api/client-ui/interfaces/GroupPillProps/index.html @@ -4,7 +4,7 @@ GroupPillProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/HorizontalStackedBarProps/index.html b/docs/next/api/client-ui/interfaces/HorizontalStackedBarProps/index.html index f3e4ec3d9..06140d005 100644 --- a/docs/next/api/client-ui/interfaces/HorizontalStackedBarProps/index.html +++ b/docs/next/api/client-ui/interfaces/HorizontalStackedBarProps/index.html @@ -4,7 +4,7 @@ HorizontalStackedBarProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/IucnActivityRank/index.html b/docs/next/api/client-ui/interfaces/IucnActivityRank/index.html index 42c7e8fbc..0b275a299 100644 --- a/docs/next/api/client-ui/interfaces/IucnActivityRank/index.html +++ b/docs/next/api/client-ui/interfaces/IucnActivityRank/index.html @@ -4,7 +4,7 @@ IucnActivityRank | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/IucnLevelCircleProps/index.html b/docs/next/api/client-ui/interfaces/IucnLevelCircleProps/index.html index 0001106d0..7cf6fb150 100644 --- a/docs/next/api/client-ui/interfaces/IucnLevelCircleProps/index.html +++ b/docs/next/api/client-ui/interfaces/IucnLevelCircleProps/index.html @@ -4,7 +4,7 @@ IucnLevelCircleProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/IucnLevelCircleRowProps/index.html b/docs/next/api/client-ui/interfaces/IucnLevelCircleRowProps/index.html index 0ba374e5e..fe4d51292 100644 --- a/docs/next/api/client-ui/interfaces/IucnLevelCircleRowProps/index.html +++ b/docs/next/api/client-ui/interfaces/IucnLevelCircleRowProps/index.html @@ -4,7 +4,7 @@ IucnLevelCircleRowProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/IucnLevelPillProps/index.html b/docs/next/api/client-ui/interfaces/IucnLevelPillProps/index.html index 85fd36a43..d879f6514 100644 --- a/docs/next/api/client-ui/interfaces/IucnLevelPillProps/index.html +++ b/docs/next/api/client-ui/interfaces/IucnLevelPillProps/index.html @@ -4,7 +4,7 @@ IucnLevelPillProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/KeySectionProps/index.html b/docs/next/api/client-ui/interfaces/KeySectionProps/index.html index 2eecb70a4..c751d1bb9 100644 --- a/docs/next/api/client-ui/interfaces/KeySectionProps/index.html +++ b/docs/next/api/client-ui/interfaces/KeySectionProps/index.html @@ -4,7 +4,7 @@ KeySectionProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/LabelProps/index.html b/docs/next/api/client-ui/interfaces/LabelProps/index.html index b7297a888..7d0ecf38e 100644 --- a/docs/next/api/client-ui/interfaces/LabelProps/index.html +++ b/docs/next/api/client-ui/interfaces/LabelProps/index.html @@ -4,7 +4,7 @@ LabelProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/LegendProps/index.html b/docs/next/api/client-ui/interfaces/LegendProps/index.html index 66f6bb0f2..8dc4e312e 100644 --- a/docs/next/api/client-ui/interfaces/LegendProps/index.html +++ b/docs/next/api/client-ui/interfaces/LegendProps/index.html @@ -4,7 +4,7 @@ LegendProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ObjectiveStatusProps/index.html b/docs/next/api/client-ui/interfaces/ObjectiveStatusProps/index.html index d6420b9b5..d6899f621 100644 --- a/docs/next/api/client-ui/interfaces/ObjectiveStatusProps/index.html +++ b/docs/next/api/client-ui/interfaces/ObjectiveStatusProps/index.html @@ -4,7 +4,7 @@ ObjectiveStatusProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/PillColumnProps/index.html b/docs/next/api/client-ui/interfaces/PillColumnProps/index.html index 4e199ceea..f8c0f8785 100644 --- a/docs/next/api/client-ui/interfaces/PillColumnProps/index.html +++ b/docs/next/api/client-ui/interfaces/PillColumnProps/index.html @@ -4,7 +4,7 @@ PillColumnProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/PillProps/index.html b/docs/next/api/client-ui/interfaces/PillProps/index.html index 4c3d12fd5..7c5b1b24c 100644 --- a/docs/next/api/client-ui/interfaces/PillProps/index.html +++ b/docs/next/api/client-ui/interfaces/PillProps/index.html @@ -4,7 +4,7 @@ PillProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/RbcsIconProps/index.html b/docs/next/api/client-ui/interfaces/RbcsIconProps/index.html index d52970cea..98f8161f7 100644 --- a/docs/next/api/client-ui/interfaces/RbcsIconProps/index.html +++ b/docs/next/api/client-ui/interfaces/RbcsIconProps/index.html @@ -4,7 +4,7 @@ RbcsIconProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/RbcsLearnMoreProps/index.html b/docs/next/api/client-ui/interfaces/RbcsLearnMoreProps/index.html index a8af0eb0b..4a6459388 100644 --- a/docs/next/api/client-ui/interfaces/RbcsLearnMoreProps/index.html +++ b/docs/next/api/client-ui/interfaces/RbcsLearnMoreProps/index.html @@ -4,7 +4,7 @@ RbcsLearnMoreProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/RbcsMpaClassPanelProps/index.html b/docs/next/api/client-ui/interfaces/RbcsMpaClassPanelProps/index.html index 049704d67..bea993406 100644 --- a/docs/next/api/client-ui/interfaces/RbcsMpaClassPanelProps/index.html +++ b/docs/next/api/client-ui/interfaces/RbcsMpaClassPanelProps/index.html @@ -4,7 +4,7 @@ RbcsMpaClassPanelProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/RbcsMpaObjectiveStatusProps/index.html b/docs/next/api/client-ui/interfaces/RbcsMpaObjectiveStatusProps/index.html index 7e5311c95..b2a8362db 100644 --- a/docs/next/api/client-ui/interfaces/RbcsMpaObjectiveStatusProps/index.html +++ b/docs/next/api/client-ui/interfaces/RbcsMpaObjectiveStatusProps/index.html @@ -4,7 +4,7 @@ RbcsMpaObjectiveStatusProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/RbcsNetworkObjectiveProps/index.html b/docs/next/api/client-ui/interfaces/RbcsNetworkObjectiveProps/index.html index 02cae4f71..4e0324fe5 100644 --- a/docs/next/api/client-ui/interfaces/RbcsNetworkObjectiveProps/index.html +++ b/docs/next/api/client-ui/interfaces/RbcsNetworkObjectiveProps/index.html @@ -4,7 +4,7 @@ RbcsNetworkObjectiveProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/RbcsPanelProps/index.html b/docs/next/api/client-ui/interfaces/RbcsPanelProps/index.html index 5fe9db7f8..941a3c735 100644 --- a/docs/next/api/client-ui/interfaces/RbcsPanelProps/index.html +++ b/docs/next/api/client-ui/interfaces/RbcsPanelProps/index.html @@ -4,7 +4,7 @@ RbcsPanelProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ReportChartFigureProps/index.html b/docs/next/api/client-ui/interfaces/ReportChartFigureProps/index.html index f7a087058..058e225d5 100644 --- a/docs/next/api/client-ui/interfaces/ReportChartFigureProps/index.html +++ b/docs/next/api/client-ui/interfaces/ReportChartFigureProps/index.html @@ -4,7 +4,7 @@ ReportChartFigureProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ReportContextState/index.html b/docs/next/api/client-ui/interfaces/ReportContextState/index.html index 96d158e4f..ede39d6a8 100644 --- a/docs/next/api/client-ui/interfaces/ReportContextState/index.html +++ b/docs/next/api/client-ui/interfaces/ReportContextState/index.html @@ -4,7 +4,7 @@ ReportContextState | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ReportPageProps/index.html b/docs/next/api/client-ui/interfaces/ReportPageProps/index.html index 77977b5a6..b71ebe30b 100644 --- a/docs/next/api/client-ui/interfaces/ReportPageProps/index.html +++ b/docs/next/api/client-ui/interfaces/ReportPageProps/index.html @@ -4,7 +4,7 @@ ReportPageProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ReportStoryLayoutProps/index.html b/docs/next/api/client-ui/interfaces/ReportStoryLayoutProps/index.html index 1fbc2fa49..ce99866a4 100644 --- a/docs/next/api/client-ui/interfaces/ReportStoryLayoutProps/index.html +++ b/docs/next/api/client-ui/interfaces/ReportStoryLayoutProps/index.html @@ -4,7 +4,7 @@ ReportStoryLayoutProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ResultsCardProps/index.html b/docs/next/api/client-ui/interfaces/ResultsCardProps/index.html index a7f0c1541..a82de1f55 100644 --- a/docs/next/api/client-ui/interfaces/ResultsCardProps/index.html +++ b/docs/next/api/client-ui/interfaces/ResultsCardProps/index.html @@ -4,7 +4,7 @@ ResultsCardProps\<T\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/Row/index.html b/docs/next/api/client-ui/interfaces/Row/index.html index 94ccbea0f..ed4da3a96 100644 --- a/docs/next/api/client-ui/interfaces/Row/index.html +++ b/docs/next/api/client-ui/interfaces/Row/index.html @@ -4,7 +4,7 @@ Row\<D\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/SegmentControlProps/index.html b/docs/next/api/client-ui/interfaces/SegmentControlProps/index.html index e66b3b93e..6859115e6 100644 --- a/docs/next/api/client-ui/interfaces/SegmentControlProps/index.html +++ b/docs/next/api/client-ui/interfaces/SegmentControlProps/index.html @@ -4,7 +4,7 @@ SegmentControlProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/SimpleButtonProbs/index.html b/docs/next/api/client-ui/interfaces/SimpleButtonProbs/index.html index fc6e0affd..26df34cef 100644 --- a/docs/next/api/client-ui/interfaces/SimpleButtonProbs/index.html +++ b/docs/next/api/client-ui/interfaces/SimpleButtonProbs/index.html @@ -4,7 +4,7 @@ SimpleButtonProbs | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/SketchAttributesCardProps/index.html b/docs/next/api/client-ui/interfaces/SketchAttributesCardProps/index.html index 1d363213d..11911f3a2 100644 --- a/docs/next/api/client-ui/interfaces/SketchAttributesCardProps/index.html +++ b/docs/next/api/client-ui/interfaces/SketchAttributesCardProps/index.html @@ -4,7 +4,7 @@ SketchAttributesCardProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/SketchClassTableProps/index.html b/docs/next/api/client-ui/interfaces/SketchClassTableProps/index.html index 219446e90..050a1c114 100644 --- a/docs/next/api/client-ui/interfaces/SketchClassTableProps/index.html +++ b/docs/next/api/client-ui/interfaces/SketchClassTableProps/index.html @@ -4,7 +4,7 @@ SketchClassTableProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/StatusProps/index.html b/docs/next/api/client-ui/interfaces/StatusProps/index.html index 1ed3d6486..de0e80288 100644 --- a/docs/next/api/client-ui/interfaces/StatusProps/index.html +++ b/docs/next/api/client-ui/interfaces/StatusProps/index.html @@ -4,7 +4,7 @@ StatusProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/StyledHorizontalStackedBarProps/index.html b/docs/next/api/client-ui/interfaces/StyledHorizontalStackedBarProps/index.html index 07028cc8c..19585af40 100644 --- a/docs/next/api/client-ui/interfaces/StyledHorizontalStackedBarProps/index.html +++ b/docs/next/api/client-ui/interfaces/StyledHorizontalStackedBarProps/index.html @@ -4,7 +4,7 @@ StyledHorizontalStackedBarProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/StyledLegendProps/index.html b/docs/next/api/client-ui/interfaces/StyledLegendProps/index.html index 4979d3bfb..18d9c05e7 100644 --- a/docs/next/api/client-ui/interfaces/StyledLegendProps/index.html +++ b/docs/next/api/client-ui/interfaces/StyledLegendProps/index.html @@ -4,7 +4,7 @@ StyledLegendProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/StyledTwoColorPointyCircleProps/index.html b/docs/next/api/client-ui/interfaces/StyledTwoColorPointyCircleProps/index.html index 300d0ff9d..3ca0aa17b 100644 --- a/docs/next/api/client-ui/interfaces/StyledTwoColorPointyCircleProps/index.html +++ b/docs/next/api/client-ui/interfaces/StyledTwoColorPointyCircleProps/index.html @@ -4,7 +4,7 @@ StyledTwoColorPointyCircleProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/TableOptions/index.html b/docs/next/api/client-ui/interfaces/TableOptions/index.html index 03deeb974..06cb80c6b 100644 --- a/docs/next/api/client-ui/interfaces/TableOptions/index.html +++ b/docs/next/api/client-ui/interfaces/TableOptions/index.html @@ -4,7 +4,7 @@ TableOptions\<D\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ToolbarCardProps/index.html b/docs/next/api/client-ui/interfaces/ToolbarCardProps/index.html index 336067ff2..4bc7128b8 100644 --- a/docs/next/api/client-ui/interfaces/ToolbarCardProps/index.html +++ b/docs/next/api/client-ui/interfaces/ToolbarCardProps/index.html @@ -4,7 +4,7 @@ ToolbarCardProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/ToolbarProps/index.html b/docs/next/api/client-ui/interfaces/ToolbarProps/index.html index 9cbdcbc39..c8585e1c4 100644 --- a/docs/next/api/client-ui/interfaces/ToolbarProps/index.html +++ b/docs/next/api/client-ui/interfaces/ToolbarProps/index.html @@ -4,7 +4,7 @@ ToolbarProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/TooltipContainerProps/index.html b/docs/next/api/client-ui/interfaces/TooltipContainerProps/index.html index 073530041..4b42a55e2 100644 --- a/docs/next/api/client-ui/interfaces/TooltipContainerProps/index.html +++ b/docs/next/api/client-ui/interfaces/TooltipContainerProps/index.html @@ -4,7 +4,7 @@ TooltipContainerProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/TooltipProps/index.html b/docs/next/api/client-ui/interfaces/TooltipProps/index.html index d1b085234..3b550a5f9 100644 --- a/docs/next/api/client-ui/interfaces/TooltipProps/index.html +++ b/docs/next/api/client-ui/interfaces/TooltipProps/index.html @@ -4,7 +4,7 @@ TooltipProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/TwoColorPointyCircleProps/index.html b/docs/next/api/client-ui/interfaces/TwoColorPointyCircleProps/index.html index b2d74024f..a7a199c6d 100644 --- a/docs/next/api/client-ui/interfaces/TwoColorPointyCircleProps/index.html +++ b/docs/next/api/client-ui/interfaces/TwoColorPointyCircleProps/index.html @@ -4,7 +4,7 @@ TwoColorPointyCircleProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/interfaces/VerticalSpacerProps/index.html b/docs/next/api/client-ui/interfaces/VerticalSpacerProps/index.html index aae9e8787..62a50381f 100644 --- a/docs/next/api/client-ui/interfaces/VerticalSpacerProps/index.html +++ b/docs/next/api/client-ui/interfaces/VerticalSpacerProps/index.html @@ -4,7 +4,7 @@ VerticalSpacerProps | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/Block/index.html b/docs/next/api/client-ui/type-aliases/Block/index.html index 3808e4259..efcd3453f 100644 --- a/docs/next/api/client-ui/type-aliases/Block/index.html +++ b/docs/next/api/client-ui/type-aliases/Block/index.html @@ -4,7 +4,7 @@ Block | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/BlockGroup/index.html b/docs/next/api/client-ui/type-aliases/BlockGroup/index.html index 58124912d..e2bd48394 100644 --- a/docs/next/api/client-ui/type-aliases/BlockGroup/index.html +++ b/docs/next/api/client-ui/type-aliases/BlockGroup/index.html @@ -4,7 +4,7 @@ BlockGroup | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/Column/index.html b/docs/next/api/client-ui/type-aliases/Column/index.html index 20478e9dc..fab5b57a0 100644 --- a/docs/next/api/client-ui/type-aliases/Column/index.html +++ b/docs/next/api/client-ui/type-aliases/Column/index.html @@ -4,7 +4,7 @@ Column\<D\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/HorizontalStackedBarRow/index.html b/docs/next/api/client-ui/type-aliases/HorizontalStackedBarRow/index.html index 90db1e7fc..9318f7d1a 100644 --- a/docs/next/api/client-ui/type-aliases/HorizontalStackedBarRow/index.html +++ b/docs/next/api/client-ui/type-aliases/HorizontalStackedBarRow/index.html @@ -4,7 +4,7 @@ HorizontalStackedBarRow | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/RbcsMpaObjectiveRenderMsgFunction/index.html b/docs/next/api/client-ui/type-aliases/RbcsMpaObjectiveRenderMsgFunction/index.html index 62484c5c9..c12ebcfe9 100644 --- a/docs/next/api/client-ui/type-aliases/RbcsMpaObjectiveRenderMsgFunction/index.html +++ b/docs/next/api/client-ui/type-aliases/RbcsMpaObjectiveRenderMsgFunction/index.html @@ -4,7 +4,7 @@ RbcsMpaObjectiveRenderMsgFunction() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/RbcsNetworkObjectiveRenderMsgFunction/index.html b/docs/next/api/client-ui/type-aliases/RbcsNetworkObjectiveRenderMsgFunction/index.html index b5e8c1570..64ed1fb7e 100644 --- a/docs/next/api/client-ui/type-aliases/RbcsNetworkObjectiveRenderMsgFunction/index.html +++ b/docs/next/api/client-ui/type-aliases/RbcsNetworkObjectiveRenderMsgFunction/index.html @@ -4,7 +4,7 @@ RbcsNetworkObjectiveRenderMsgFunction() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/RowConfig/index.html b/docs/next/api/client-ui/type-aliases/RowConfig/index.html index 7375b7299..d46f00ac7 100644 --- a/docs/next/api/client-ui/type-aliases/RowConfig/index.html +++ b/docs/next/api/client-ui/type-aliases/RowConfig/index.html @@ -4,7 +4,7 @@ RowConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/SUPPORTED_FORMAT/index.html b/docs/next/api/client-ui/type-aliases/SUPPORTED_FORMAT/index.html index 163960cb7..971b0b838 100644 --- a/docs/next/api/client-ui/type-aliases/SUPPORTED_FORMAT/index.html +++ b/docs/next/api/client-ui/type-aliases/SUPPORTED_FORMAT/index.html @@ -4,7 +4,7 @@ SUPPORTED\_FORMAT | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/StringOrNumber/index.html b/docs/next/api/client-ui/type-aliases/StringOrNumber/index.html index 76e014b42..24012a3a7 100644 --- a/docs/next/api/client-ui/type-aliases/StringOrNumber/index.html +++ b/docs/next/api/client-ui/type-aliases/StringOrNumber/index.html @@ -4,7 +4,7 @@ StringOrNumber | SeaSketch Geoprocessing - + diff --git a/docs/next/api/client-ui/type-aliases/TargetFormatter/index.html b/docs/next/api/client-ui/type-aliases/TargetFormatter/index.html index 1b172aea8..d6adae7e5 100644 --- a/docs/next/api/client-ui/type-aliases/TargetFormatter/index.html +++ b/docs/next/api/client-ui/type-aliases/TargetFormatter/index.html @@ -4,7 +4,7 @@ TargetFormatter() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/dataproviders/index.html b/docs/next/api/dataproviders/index.html index 38c34324e..08ce7a4bb 100644 --- a/docs/next/api/dataproviders/index.html +++ b/docs/next/api/dataproviders/index.html @@ -4,7 +4,7 @@ dataproviders | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/classes/ComplexityError/index.html b/docs/next/api/geoprocessing/classes/ComplexityError/index.html index b3b33e3e6..5bb68c100 100644 --- a/docs/next/api/geoprocessing/classes/ComplexityError/index.html +++ b/docs/next/api/geoprocessing/classes/ComplexityError/index.html @@ -4,7 +4,7 @@ ComplexityError | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/classes/GeoprocessingHandler/index.html b/docs/next/api/geoprocessing/classes/GeoprocessingHandler/index.html index e7e19dc58..51b0c0b55 100644 --- a/docs/next/api/geoprocessing/classes/GeoprocessingHandler/index.html +++ b/docs/next/api/geoprocessing/classes/GeoprocessingHandler/index.html @@ -4,7 +4,7 @@ GeoprocessingHandler\<T, G, P\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/classes/PreprocessingHandler/index.html b/docs/next/api/geoprocessing/classes/PreprocessingHandler/index.html index 3aa889994..0a47b52da 100644 --- a/docs/next/api/geoprocessing/classes/PreprocessingHandler/index.html +++ b/docs/next/api/geoprocessing/classes/PreprocessingHandler/index.html @@ -4,7 +4,7 @@ PreprocessingHandler\<G, P\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/classes/ProjectClientBase/index.html b/docs/next/api/geoprocessing/classes/ProjectClientBase/index.html index 3deebcd17..400b4451e 100644 --- a/docs/next/api/geoprocessing/classes/ProjectClientBase/index.html +++ b/docs/next/api/geoprocessing/classes/ProjectClientBase/index.html @@ -4,7 +4,7 @@ ProjectClientBase | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/classes/ValidationError/index.html b/docs/next/api/geoprocessing/classes/ValidationError/index.html index 0ce9b1ff2..2527d4ced 100644 --- a/docs/next/api/geoprocessing/classes/ValidationError/index.html +++ b/docs/next/api/geoprocessing/classes/ValidationError/index.html @@ -4,7 +4,7 @@ ValidationError | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/classes/VectorDataSource/index.html b/docs/next/api/geoprocessing/classes/VectorDataSource/index.html index 96d7dff39..c57faf101 100644 --- a/docs/next/api/geoprocessing/classes/VectorDataSource/index.html +++ b/docs/next/api/geoprocessing/classes/VectorDataSource/index.html @@ -4,7 +4,7 @@ VectorDataSource\<T\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/enumerations/GeoprocessingTaskStatus/index.html b/docs/next/api/geoprocessing/enumerations/GeoprocessingTaskStatus/index.html index 1a26edfa2..9840db4a7 100644 --- a/docs/next/api/geoprocessing/enumerations/GeoprocessingTaskStatus/index.html +++ b/docs/next/api/geoprocessing/enumerations/GeoprocessingTaskStatus/index.html @@ -4,7 +4,7 @@ GeoprocessingTaskStatus | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/anchorScore/index.html b/docs/next/api/geoprocessing/functions/anchorScore/index.html index ed8124752..ac74cff24 100644 --- a/docs/next/api/geoprocessing/functions/anchorScore/index.html +++ b/docs/next/api/geoprocessing/functions/anchorScore/index.html @@ -4,7 +4,7 @@ anchorScore() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/aquacultureScore/index.html b/docs/next/api/geoprocessing/functions/aquacultureScore/index.html index ad9302e33..b91b1724f 100644 --- a/docs/next/api/geoprocessing/functions/aquacultureScore/index.html +++ b/docs/next/api/geoprocessing/functions/aquacultureScore/index.html @@ -4,7 +4,7 @@ aquacultureScore() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/area/index.html b/docs/next/api/geoprocessing/functions/area/index.html index b3821e8d5..62f7b0562 100644 --- a/docs/next/api/geoprocessing/functions/area/index.html +++ b/docs/next/api/geoprocessing/functions/area/index.html @@ -4,7 +4,7 @@ area() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/batchDelete/index.html b/docs/next/api/geoprocessing/functions/batchDelete/index.html index d5642ac42..0a28fc6e7 100644 --- a/docs/next/api/geoprocessing/functions/batchDelete/index.html +++ b/docs/next/api/geoprocessing/functions/batchDelete/index.html @@ -4,7 +4,7 @@ batchDelete() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/batchDeleteTasks/index.html b/docs/next/api/geoprocessing/functions/batchDeleteTasks/index.html index c917f6693..6b0ad6394 100644 --- a/docs/next/api/geoprocessing/functions/batchDeleteTasks/index.html +++ b/docs/next/api/geoprocessing/functions/batchDeleteTasks/index.html @@ -4,7 +4,7 @@ batchDeleteTasks() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/bboxOverlap/index.html b/docs/next/api/geoprocessing/functions/bboxOverlap/index.html index d334278e8..c45ae0b28 100644 --- a/docs/next/api/geoprocessing/functions/bboxOverlap/index.html +++ b/docs/next/api/geoprocessing/functions/bboxOverlap/index.html @@ -4,7 +4,7 @@ bboxOverlap() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/biggestPolygon/index.html b/docs/next/api/geoprocessing/functions/biggestPolygon/index.html index 5e010885b..00cbd92ac 100644 --- a/docs/next/api/geoprocessing/functions/biggestPolygon/index.html +++ b/docs/next/api/geoprocessing/functions/biggestPolygon/index.html @@ -4,7 +4,7 @@ biggestPolygon() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/booleanOverlap/index.html b/docs/next/api/geoprocessing/functions/booleanOverlap/index.html index 7065a60bc..3ac9e25c0 100644 --- a/docs/next/api/geoprocessing/functions/booleanOverlap/index.html +++ b/docs/next/api/geoprocessing/functions/booleanOverlap/index.html @@ -4,7 +4,7 @@ booleanOverlap() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/byteSize/index.html b/docs/next/api/geoprocessing/functions/byteSize/index.html index 67bb58a56..96971bcfe 100644 --- a/docs/next/api/geoprocessing/functions/byteSize/index.html +++ b/docs/next/api/geoprocessing/functions/byteSize/index.html @@ -4,7 +4,7 @@ byteSize() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/callWithRetry/index.html b/docs/next/api/geoprocessing/functions/callWithRetry/index.html index cb1fe1948..bf9c15cfd 100644 --- a/docs/next/api/geoprocessing/functions/callWithRetry/index.html +++ b/docs/next/api/geoprocessing/functions/callWithRetry/index.html @@ -4,7 +4,7 @@ callWithRetry() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/capitalize/index.html b/docs/next/api/geoprocessing/functions/capitalize/index.html index a11fa37f4..7d440bea9 100644 --- a/docs/next/api/geoprocessing/functions/capitalize/index.html +++ b/docs/next/api/geoprocessing/functions/capitalize/index.html @@ -4,7 +4,7 @@ capitalize() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/chunk/index.html b/docs/next/api/geoprocessing/functions/chunk/index.html index e2d37949b..1fa1a6343 100644 --- a/docs/next/api/geoprocessing/functions/chunk/index.html +++ b/docs/next/api/geoprocessing/functions/chunk/index.html @@ -4,7 +4,7 @@ chunk() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/classIdMapping/index.html b/docs/next/api/geoprocessing/functions/classIdMapping/index.html index 4334d7223..99861ba77 100644 --- a/docs/next/api/geoprocessing/functions/classIdMapping/index.html +++ b/docs/next/api/geoprocessing/functions/classIdMapping/index.html @@ -4,7 +4,7 @@ classIdMapping() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/classifyMPA/index.html b/docs/next/api/geoprocessing/functions/classifyMPA/index.html index c80bc608f..ba3d02190 100644 --- a/docs/next/api/geoprocessing/functions/classifyMPA/index.html +++ b/docs/next/api/geoprocessing/functions/classifyMPA/index.html @@ -4,7 +4,7 @@ classifyMPA() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/classifyZone/index.html b/docs/next/api/geoprocessing/functions/classifyZone/index.html index 289172f7f..1ada6cb2b 100644 --- a/docs/next/api/geoprocessing/functions/classifyZone/index.html +++ b/docs/next/api/geoprocessing/functions/classifyZone/index.html @@ -4,7 +4,7 @@ classifyZone() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/cleanBBox/index.html b/docs/next/api/geoprocessing/functions/cleanBBox/index.html index 307a50dcd..fd639a10b 100644 --- a/docs/next/api/geoprocessing/functions/cleanBBox/index.html +++ b/docs/next/api/geoprocessing/functions/cleanBBox/index.html @@ -4,7 +4,7 @@ cleanBBox() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/cleanCoords/index.html b/docs/next/api/geoprocessing/functions/cleanCoords/index.html index bbe5cfc33..93d3a9669 100644 --- a/docs/next/api/geoprocessing/functions/cleanCoords/index.html +++ b/docs/next/api/geoprocessing/functions/cleanCoords/index.html @@ -4,7 +4,7 @@ cleanCoords() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/clip/index.html b/docs/next/api/geoprocessing/functions/clip/index.html index c977ef397..be27c64a2 100644 --- a/docs/next/api/geoprocessing/functions/clip/index.html +++ b/docs/next/api/geoprocessing/functions/clip/index.html @@ -4,7 +4,7 @@ clip() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/clipMultiMerge/index.html b/docs/next/api/geoprocessing/functions/clipMultiMerge/index.html index 16f33116e..8d0e6b71d 100644 --- a/docs/next/api/geoprocessing/functions/clipMultiMerge/index.html +++ b/docs/next/api/geoprocessing/functions/clipMultiMerge/index.html @@ -4,7 +4,7 @@ clipMultiMerge() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/clipToPolygonDatasources/index.html b/docs/next/api/geoprocessing/functions/clipToPolygonDatasources/index.html index 6e292ce49..f4c60d18f 100644 --- a/docs/next/api/geoprocessing/functions/clipToPolygonDatasources/index.html +++ b/docs/next/api/geoprocessing/functions/clipToPolygonDatasources/index.html @@ -4,7 +4,7 @@ clipToPolygonDatasources() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/clipToPolygonFeatures/index.html b/docs/next/api/geoprocessing/functions/clipToPolygonFeatures/index.html index 07f0bc62b..d033e705d 100644 --- a/docs/next/api/geoprocessing/functions/clipToPolygonFeatures/index.html +++ b/docs/next/api/geoprocessing/functions/clipToPolygonFeatures/index.html @@ -4,7 +4,7 @@ clipToPolygonFeatures() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/collectionHasGeometry/index.html b/docs/next/api/geoprocessing/functions/collectionHasGeometry/index.html index 48032737f..9654ea766 100644 --- a/docs/next/api/geoprocessing/functions/collectionHasGeometry/index.html +++ b/docs/next/api/geoprocessing/functions/collectionHasGeometry/index.html @@ -4,7 +4,7 @@ collectionHasGeometry() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/createMetric/index.html b/docs/next/api/geoprocessing/functions/createMetric/index.html index 294b97c26..b62d8b429 100644 --- a/docs/next/api/geoprocessing/functions/createMetric/index.html +++ b/docs/next/api/geoprocessing/functions/createMetric/index.html @@ -4,7 +4,7 @@ createMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/createMetrics/index.html b/docs/next/api/geoprocessing/functions/createMetrics/index.html index 4179d5044..22791febe 100644 --- a/docs/next/api/geoprocessing/functions/createMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/createMetrics/index.html @@ -4,7 +4,7 @@ createMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/ensureValidPolygon/index.html b/docs/next/api/geoprocessing/functions/ensureValidPolygon/index.html index 9de5e2301..52ce074f2 100644 --- a/docs/next/api/geoprocessing/functions/ensureValidPolygon/index.html +++ b/docs/next/api/geoprocessing/functions/ensureValidPolygon/index.html @@ -4,7 +4,7 @@ ensureValidPolygon() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/featureToSketch/index.html b/docs/next/api/geoprocessing/functions/featureToSketch/index.html index c644a73ba..0b5b1723d 100644 --- a/docs/next/api/geoprocessing/functions/featureToSketch/index.html +++ b/docs/next/api/geoprocessing/functions/featureToSketch/index.html @@ -4,7 +4,7 @@ featureToSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/featureToSketchCollection/index.html b/docs/next/api/geoprocessing/functions/featureToSketchCollection/index.html index 5b9a97c9c..33a083cde 100644 --- a/docs/next/api/geoprocessing/functions/featureToSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/featureToSketchCollection/index.html @@ -4,7 +4,7 @@ featureToSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/fetchGeoJSON/index.html b/docs/next/api/geoprocessing/functions/fetchGeoJSON/index.html index 2ea436899..ac618377e 100644 --- a/docs/next/api/geoprocessing/functions/fetchGeoJSON/index.html +++ b/docs/next/api/geoprocessing/functions/fetchGeoJSON/index.html @@ -4,7 +4,7 @@ fetchGeoJSON() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/fgBoundingBox/index.html b/docs/next/api/geoprocessing/functions/fgBoundingBox/index.html index 6db231517..20df54d3b 100644 --- a/docs/next/api/geoprocessing/functions/fgBoundingBox/index.html +++ b/docs/next/api/geoprocessing/functions/fgBoundingBox/index.html @@ -4,7 +4,7 @@ fgBoundingBox() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/fgbFetchAll/index.html b/docs/next/api/geoprocessing/functions/fgbFetchAll/index.html index 9aa56e9cb..7e764b7e3 100644 --- a/docs/next/api/geoprocessing/functions/fgbFetchAll/index.html +++ b/docs/next/api/geoprocessing/functions/fgbFetchAll/index.html @@ -4,7 +4,7 @@ ~~fgbFetchAll()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/findAndUpdateMetricValue/index.html b/docs/next/api/geoprocessing/functions/findAndUpdateMetricValue/index.html index 2c10c7d86..f6574a38f 100644 --- a/docs/next/api/geoprocessing/functions/findAndUpdateMetricValue/index.html +++ b/docs/next/api/geoprocessing/functions/findAndUpdateMetricValue/index.html @@ -4,7 +4,7 @@ findAndUpdateMetricValue() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/firstMatching/index.html b/docs/next/api/geoprocessing/functions/firstMatching/index.html index 7ad8bb8f6..605c18a23 100644 --- a/docs/next/api/geoprocessing/functions/firstMatching/index.html +++ b/docs/next/api/geoprocessing/functions/firstMatching/index.html @@ -4,7 +4,7 @@ firstMatching() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/firstMatchingMetric/index.html b/docs/next/api/geoprocessing/functions/firstMatchingMetric/index.html index a03057fc9..1dc36f2d3 100644 --- a/docs/next/api/geoprocessing/functions/firstMatchingMetric/index.html +++ b/docs/next/api/geoprocessing/functions/firstMatchingMetric/index.html @@ -4,7 +4,7 @@ firstMatchingMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/flattenByGroupAllClass/index.html b/docs/next/api/geoprocessing/functions/flattenByGroupAllClass/index.html index 4349bc9a5..e3ac71230 100644 --- a/docs/next/api/geoprocessing/functions/flattenByGroupAllClass/index.html +++ b/docs/next/api/geoprocessing/functions/flattenByGroupAllClass/index.html @@ -4,7 +4,7 @@ flattenByGroupAllClass() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/flattenByGroupSketchAllClass/index.html b/docs/next/api/geoprocessing/functions/flattenByGroupSketchAllClass/index.html index d6df5a498..2706ade93 100644 --- a/docs/next/api/geoprocessing/functions/flattenByGroupSketchAllClass/index.html +++ b/docs/next/api/geoprocessing/functions/flattenByGroupSketchAllClass/index.html @@ -4,7 +4,7 @@ flattenByGroupSketchAllClass() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/flattenBySketchAllClass/index.html b/docs/next/api/geoprocessing/functions/flattenBySketchAllClass/index.html index 04ccbed2e..fd6b9d303 100644 --- a/docs/next/api/geoprocessing/functions/flattenBySketchAllClass/index.html +++ b/docs/next/api/geoprocessing/functions/flattenBySketchAllClass/index.html @@ -4,7 +4,7 @@ flattenBySketchAllClass() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/flattenSketchAllId/index.html b/docs/next/api/geoprocessing/functions/flattenSketchAllId/index.html index 18916ba8b..9c5bf1717 100644 --- a/docs/next/api/geoprocessing/functions/flattenSketchAllId/index.html +++ b/docs/next/api/geoprocessing/functions/flattenSketchAllId/index.html @@ -4,7 +4,7 @@ ~~flattenSketchAllId()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/gearTypeScore/index.html b/docs/next/api/geoprocessing/functions/gearTypeScore/index.html index 5f302671f..abe84302d 100644 --- a/docs/next/api/geoprocessing/functions/gearTypeScore/index.html +++ b/docs/next/api/geoprocessing/functions/gearTypeScore/index.html @@ -4,7 +4,7 @@ gearTypeScore() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genClipToPolygonDatasources/index.html b/docs/next/api/geoprocessing/functions/genClipToPolygonDatasources/index.html index 2fee366f0..61b95887a 100644 --- a/docs/next/api/geoprocessing/functions/genClipToPolygonDatasources/index.html +++ b/docs/next/api/geoprocessing/functions/genClipToPolygonDatasources/index.html @@ -4,7 +4,7 @@ genClipToPolygonDatasources() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genClipToPolygonFeatures/index.html b/docs/next/api/geoprocessing/functions/genClipToPolygonFeatures/index.html index 6710531d2..66ea050e1 100644 --- a/docs/next/api/geoprocessing/functions/genClipToPolygonFeatures/index.html +++ b/docs/next/api/geoprocessing/functions/genClipToPolygonFeatures/index.html @@ -4,7 +4,7 @@ genClipToPolygonFeatures() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genFeature/index.html b/docs/next/api/geoprocessing/functions/genFeature/index.html index 9c8508584..2ac96695e 100644 --- a/docs/next/api/geoprocessing/functions/genFeature/index.html +++ b/docs/next/api/geoprocessing/functions/genFeature/index.html @@ -4,7 +4,7 @@ genFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genFeatureCollection/index.html b/docs/next/api/geoprocessing/functions/genFeatureCollection/index.html index ae4d9afc2..f55a9d586 100644 --- a/docs/next/api/geoprocessing/functions/genFeatureCollection/index.html +++ b/docs/next/api/geoprocessing/functions/genFeatureCollection/index.html @@ -4,7 +4,7 @@ genFeatureCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genRandomPolygons/index.html b/docs/next/api/geoprocessing/functions/genRandomPolygons/index.html index 3d253b109..1ddbb9c42 100644 --- a/docs/next/api/geoprocessing/functions/genRandomPolygons/index.html +++ b/docs/next/api/geoprocessing/functions/genRandomPolygons/index.html @@ -4,7 +4,7 @@ genRandomPolygons() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleNullSketch/index.html b/docs/next/api/geoprocessing/functions/genSampleNullSketch/index.html index 0a33843c1..810fac24b 100644 --- a/docs/next/api/geoprocessing/functions/genSampleNullSketch/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleNullSketch/index.html @@ -4,7 +4,7 @@ genSampleNullSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleNullSketchCollection/index.html b/docs/next/api/geoprocessing/functions/genSampleNullSketchCollection/index.html index bd133bd89..afd4e6991 100644 --- a/docs/next/api/geoprocessing/functions/genSampleNullSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleNullSketchCollection/index.html @@ -4,7 +4,7 @@ genSampleNullSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleSketch/index.html b/docs/next/api/geoprocessing/functions/genSampleSketch/index.html index a24ea5e55..57f51654d 100644 --- a/docs/next/api/geoprocessing/functions/genSampleSketch/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleSketch/index.html @@ -4,7 +4,7 @@ genSampleSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleSketchCollection/index.html b/docs/next/api/geoprocessing/functions/genSampleSketchCollection/index.html index 4aaabb75d..9f1ac51e5 100644 --- a/docs/next/api/geoprocessing/functions/genSampleSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleSketchCollection/index.html @@ -4,7 +4,7 @@ genSampleSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleSketchCollectionFromSketches/index.html b/docs/next/api/geoprocessing/functions/genSampleSketchCollectionFromSketches/index.html index b7cc510e9..696f2fc7d 100644 --- a/docs/next/api/geoprocessing/functions/genSampleSketchCollectionFromSketches/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleSketchCollectionFromSketches/index.html @@ -4,7 +4,7 @@ genSampleSketchCollectionFromSketches() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleSketchContext/index.html b/docs/next/api/geoprocessing/functions/genSampleSketchContext/index.html index 25e19af4e..db6261378 100644 --- a/docs/next/api/geoprocessing/functions/genSampleSketchContext/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleSketchContext/index.html @@ -4,7 +4,7 @@ genSampleSketchContext() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSampleUserAttributes/index.html b/docs/next/api/geoprocessing/functions/genSampleUserAttributes/index.html index c517dfe0e..d041d0ef6 100644 --- a/docs/next/api/geoprocessing/functions/genSampleUserAttributes/index.html +++ b/docs/next/api/geoprocessing/functions/genSampleUserAttributes/index.html @@ -4,7 +4,7 @@ genSampleUserAttributes() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSketch/index.html b/docs/next/api/geoprocessing/functions/genSketch/index.html index 0398d872c..09e5c4074 100644 --- a/docs/next/api/geoprocessing/functions/genSketch/index.html +++ b/docs/next/api/geoprocessing/functions/genSketch/index.html @@ -4,7 +4,7 @@ genSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genSketchCollection/index.html b/docs/next/api/geoprocessing/functions/genSketchCollection/index.html index 0c784d694..8d383d3d5 100644 --- a/docs/next/api/geoprocessing/functions/genSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/genSketchCollection/index.html @@ -4,7 +4,7 @@ genSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genTaskCacheKey/index.html b/docs/next/api/geoprocessing/functions/genTaskCacheKey/index.html index d52eb30ae..bcf3f458e 100644 --- a/docs/next/api/geoprocessing/functions/genTaskCacheKey/index.html +++ b/docs/next/api/geoprocessing/functions/genTaskCacheKey/index.html @@ -4,7 +4,7 @@ genTaskCacheKey() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/genZodErrorMessage/index.html b/docs/next/api/geoprocessing/functions/genZodErrorMessage/index.html index 404d11122..e83f02e5d 100644 --- a/docs/next/api/geoprocessing/functions/genZodErrorMessage/index.html +++ b/docs/next/api/geoprocessing/functions/genZodErrorMessage/index.html @@ -4,7 +4,7 @@ genZodErrorMessage() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getArea/index.html b/docs/next/api/geoprocessing/functions/getArea/index.html index ffc854e81..1e6984bdc 100644 --- a/docs/next/api/geoprocessing/functions/getArea/index.html +++ b/docs/next/api/geoprocessing/functions/getArea/index.html @@ -4,7 +4,7 @@ getArea() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getClassificationLabel/index.html b/docs/next/api/geoprocessing/functions/getClassificationLabel/index.html index e75dcc11b..e6e6007cc 100644 --- a/docs/next/api/geoprocessing/functions/getClassificationLabel/index.html +++ b/docs/next/api/geoprocessing/functions/getClassificationLabel/index.html @@ -4,7 +4,7 @@ getClassificationLabel() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getCogFilename/index.html b/docs/next/api/geoprocessing/functions/getCogFilename/index.html index 4542e1d2b..a448e3862 100644 --- a/docs/next/api/geoprocessing/functions/getCogFilename/index.html +++ b/docs/next/api/geoprocessing/functions/getCogFilename/index.html @@ -4,7 +4,7 @@ getCogFilename() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getDatasetBucketName/index.html b/docs/next/api/geoprocessing/functions/getDatasetBucketName/index.html index 3b609b38f..437bc14d4 100644 --- a/docs/next/api/geoprocessing/functions/getDatasetBucketName/index.html +++ b/docs/next/api/geoprocessing/functions/getDatasetBucketName/index.html @@ -4,7 +4,7 @@ getDatasetBucketName() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getDatasourceById/index.html index ffad4035d..249c1a685 100644 --- a/docs/next/api/geoprocessing/functions/getDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getDatasourceById/index.html @@ -4,7 +4,7 @@ getDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getDatasourceFeatures/index.html b/docs/next/api/geoprocessing/functions/getDatasourceFeatures/index.html index bcfd88ffc..bf4d6171f 100644 --- a/docs/next/api/geoprocessing/functions/getDatasourceFeatures/index.html +++ b/docs/next/api/geoprocessing/functions/getDatasourceFeatures/index.html @@ -4,7 +4,7 @@ getDatasourceFeatures() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getExternalRasterDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getExternalRasterDatasourceById/index.html index 748e90fca..6b63b75c2 100644 --- a/docs/next/api/geoprocessing/functions/getExternalRasterDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getExternalRasterDatasourceById/index.html @@ -4,7 +4,7 @@ getExternalRasterDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getExternalVectorDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getExternalVectorDatasourceById/index.html index bdd664332..564afb718 100644 --- a/docs/next/api/geoprocessing/functions/getExternalVectorDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getExternalVectorDatasourceById/index.html @@ -4,7 +4,7 @@ getExternalVectorDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getFeatures/index.html b/docs/next/api/geoprocessing/functions/getFeatures/index.html index 620bc0943..4bcdd8642 100644 --- a/docs/next/api/geoprocessing/functions/getFeatures/index.html +++ b/docs/next/api/geoprocessing/functions/getFeatures/index.html @@ -4,7 +4,7 @@ ~~getFeatures()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getFeaturesForBBoxes/index.html b/docs/next/api/geoprocessing/functions/getFeaturesForBBoxes/index.html index de6a930ee..8443d638d 100644 --- a/docs/next/api/geoprocessing/functions/getFeaturesForBBoxes/index.html +++ b/docs/next/api/geoprocessing/functions/getFeaturesForBBoxes/index.html @@ -4,7 +4,7 @@ getFeaturesForBBoxes() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getFeaturesForSketchBBoxes/index.html b/docs/next/api/geoprocessing/functions/getFeaturesForSketchBBoxes/index.html index e93cef0d6..715423802 100644 --- a/docs/next/api/geoprocessing/functions/getFeaturesForSketchBBoxes/index.html +++ b/docs/next/api/geoprocessing/functions/getFeaturesForSketchBBoxes/index.html @@ -4,7 +4,7 @@ getFeaturesForSketchBBoxes() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getFirstFromParam/index.html b/docs/next/api/geoprocessing/functions/getFirstFromParam/index.html index 33d5a1bea..edbfe2624 100644 --- a/docs/next/api/geoprocessing/functions/getFirstFromParam/index.html +++ b/docs/next/api/geoprocessing/functions/getFirstFromParam/index.html @@ -4,7 +4,7 @@ getFirstFromParam() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getFlatGeobufFilename/index.html b/docs/next/api/geoprocessing/functions/getFlatGeobufFilename/index.html index 5d13bee64..a5131f872 100644 --- a/docs/next/api/geoprocessing/functions/getFlatGeobufFilename/index.html +++ b/docs/next/api/geoprocessing/functions/getFlatGeobufFilename/index.html @@ -4,7 +4,7 @@ getFlatGeobufFilename() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getFlatGeobufPath/index.html b/docs/next/api/geoprocessing/functions/getFlatGeobufPath/index.html index a7fd87366..b112427a6 100644 --- a/docs/next/api/geoprocessing/functions/getFlatGeobufPath/index.html +++ b/docs/next/api/geoprocessing/functions/getFlatGeobufPath/index.html @@ -4,7 +4,7 @@ getFlatGeobufPath() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getGeopackagePath/index.html b/docs/next/api/geoprocessing/functions/getGeopackagePath/index.html index 440539023..207f5134e 100644 --- a/docs/next/api/geoprocessing/functions/getGeopackagePath/index.html +++ b/docs/next/api/geoprocessing/functions/getGeopackagePath/index.html @@ -4,7 +4,7 @@ getGeopackagePath() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getHistogram/index.html b/docs/next/api/geoprocessing/functions/getHistogram/index.html index 9cbd96d54..f5e68f4bd 100644 --- a/docs/next/api/geoprocessing/functions/getHistogram/index.html +++ b/docs/next/api/geoprocessing/functions/getHistogram/index.html @@ -4,7 +4,7 @@ getHistogram() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getIndexIconPerc/index.html b/docs/next/api/geoprocessing/functions/getIndexIconPerc/index.html index 9ebd4769f..8825c9a8f 100644 --- a/docs/next/api/geoprocessing/functions/getIndexIconPerc/index.html +++ b/docs/next/api/geoprocessing/functions/getIndexIconPerc/index.html @@ -4,7 +4,7 @@ getIndexIconPerc() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getInternalRasterDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getInternalRasterDatasourceById/index.html index 3036e3557..b98888729 100644 --- a/docs/next/api/geoprocessing/functions/getInternalRasterDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getInternalRasterDatasourceById/index.html @@ -4,7 +4,7 @@ getInternalRasterDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getInternalVectorDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getInternalVectorDatasourceById/index.html index aaec8fa55..8f8fe39e6 100644 --- a/docs/next/api/geoprocessing/functions/getInternalVectorDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getInternalVectorDatasourceById/index.html @@ -4,7 +4,7 @@ getInternalVectorDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getIucnCategoryForActivities/index.html b/docs/next/api/geoprocessing/functions/getIucnCategoryForActivities/index.html index ab1cf3bdf..607e4e88a 100644 --- a/docs/next/api/geoprocessing/functions/getIucnCategoryForActivities/index.html +++ b/docs/next/api/geoprocessing/functions/getIucnCategoryForActivities/index.html @@ -4,7 +4,7 @@ getIucnCategoryForActivities() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getIucnCategoryForSketches/index.html b/docs/next/api/geoprocessing/functions/getIucnCategoryForSketches/index.html index d44da139a..3490171e3 100644 --- a/docs/next/api/geoprocessing/functions/getIucnCategoryForSketches/index.html +++ b/docs/next/api/geoprocessing/functions/getIucnCategoryForSketches/index.html @@ -4,7 +4,7 @@ getIucnCategoryForSketches() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getIucnCategoryNameForSketches/index.html b/docs/next/api/geoprocessing/functions/getIucnCategoryNameForSketches/index.html index 2230efffd..46b1d5cb4 100644 --- a/docs/next/api/geoprocessing/functions/getIucnCategoryNameForSketches/index.html +++ b/docs/next/api/geoprocessing/functions/getIucnCategoryNameForSketches/index.html @@ -4,7 +4,7 @@ getIucnCategoryNameForSketches() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getIucnLevelNameForSketches/index.html b/docs/next/api/geoprocessing/functions/getIucnLevelNameForSketches/index.html index 9b9b2ebec..38b78de89 100644 --- a/docs/next/api/geoprocessing/functions/getIucnLevelNameForSketches/index.html +++ b/docs/next/api/geoprocessing/functions/getIucnLevelNameForSketches/index.html @@ -4,7 +4,7 @@ getIucnLevelNameForSketches() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getJsonFilename/index.html b/docs/next/api/geoprocessing/functions/getJsonFilename/index.html index ff9d970a5..7953d6534 100644 --- a/docs/next/api/geoprocessing/functions/getJsonFilename/index.html +++ b/docs/next/api/geoprocessing/functions/getJsonFilename/index.html @@ -4,7 +4,7 @@ getJsonFilename() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getJsonPath/index.html b/docs/next/api/geoprocessing/functions/getJsonPath/index.html index b97aef7df..8edbb66a2 100644 --- a/docs/next/api/geoprocessing/functions/getJsonPath/index.html +++ b/docs/next/api/geoprocessing/functions/getJsonPath/index.html @@ -4,7 +4,7 @@ getJsonPath() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getJsonUserAttribute/index.html b/docs/next/api/geoprocessing/functions/getJsonUserAttribute/index.html index 9e3faf86c..deb346a1a 100644 --- a/docs/next/api/geoprocessing/functions/getJsonUserAttribute/index.html +++ b/docs/next/api/geoprocessing/functions/getJsonUserAttribute/index.html @@ -4,7 +4,7 @@ getJsonUserAttribute() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getKeys/index.html b/docs/next/api/geoprocessing/functions/getKeys/index.html index 1c46a31f2..fa58312fb 100644 --- a/docs/next/api/geoprocessing/functions/getKeys/index.html +++ b/docs/next/api/geoprocessing/functions/getKeys/index.html @@ -4,7 +4,7 @@ getKeys() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveId/index.html b/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveId/index.html index a98f1d71b..50968f3e5 100644 --- a/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveId/index.html +++ b/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveId/index.html @@ -4,7 +4,7 @@ getMetricGroupObjectiveId() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveIds/index.html b/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveIds/index.html index 79860ca8f..ed7746980 100644 --- a/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveIds/index.html +++ b/docs/next/api/geoprocessing/functions/getMetricGroupObjectiveIds/index.html @@ -4,7 +4,7 @@ getMetricGroupObjectiveIds() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getMinYesCountMap/index.html b/docs/next/api/geoprocessing/functions/getMinYesCountMap/index.html index 23f974845..d032744e1 100644 --- a/docs/next/api/geoprocessing/functions/getMinYesCountMap/index.html +++ b/docs/next/api/geoprocessing/functions/getMinYesCountMap/index.html @@ -4,7 +4,7 @@ getMinYesCountMap() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getMpaClassificationName/index.html b/docs/next/api/geoprocessing/functions/getMpaClassificationName/index.html index 447799e0a..b29ed78f3 100644 --- a/docs/next/api/geoprocessing/functions/getMpaClassificationName/index.html +++ b/docs/next/api/geoprocessing/functions/getMpaClassificationName/index.html @@ -4,7 +4,7 @@ getMpaClassificationName() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getObjectiveById/index.html b/docs/next/api/geoprocessing/functions/getObjectiveById/index.html index df88e6eed..9c318bd64 100644 --- a/docs/next/api/geoprocessing/functions/getObjectiveById/index.html +++ b/docs/next/api/geoprocessing/functions/getObjectiveById/index.html @@ -4,7 +4,7 @@ getObjectiveById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getParamStringArray/index.html b/docs/next/api/geoprocessing/functions/getParamStringArray/index.html index 7246d3b99..2b7963886 100644 --- a/docs/next/api/geoprocessing/functions/getParamStringArray/index.html +++ b/docs/next/api/geoprocessing/functions/getParamStringArray/index.html @@ -4,7 +4,7 @@ getParamStringArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getRasterBoxSpherical/index.html b/docs/next/api/geoprocessing/functions/getRasterBoxSpherical/index.html index 8611d1e65..be8dd7d97 100644 --- a/docs/next/api/geoprocessing/functions/getRasterBoxSpherical/index.html +++ b/docs/next/api/geoprocessing/functions/getRasterBoxSpherical/index.html @@ -4,7 +4,7 @@ getRasterBoxSpherical() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getRasterDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getRasterDatasourceById/index.html index 4cf720fc4..163ae257c 100644 --- a/docs/next/api/geoprocessing/functions/getRasterDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getRasterDatasourceById/index.html @@ -4,7 +4,7 @@ getRasterDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getSketchCollectionChildIds/index.html b/docs/next/api/geoprocessing/functions/getSketchCollectionChildIds/index.html index 8f0e8f55a..8234291dc 100644 --- a/docs/next/api/geoprocessing/functions/getSketchCollectionChildIds/index.html +++ b/docs/next/api/geoprocessing/functions/getSketchCollectionChildIds/index.html @@ -4,7 +4,7 @@ ~~getSketchCollectionChildIds()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getSketchFeatures/index.html b/docs/next/api/geoprocessing/functions/getSketchFeatures/index.html index acd3ff2f0..0fe31d367 100644 --- a/docs/next/api/geoprocessing/functions/getSketchFeatures/index.html +++ b/docs/next/api/geoprocessing/functions/getSketchFeatures/index.html @@ -4,7 +4,7 @@ getSketchFeatures() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getSketchToMpaProtectionLevel/index.html b/docs/next/api/geoprocessing/functions/getSketchToMpaProtectionLevel/index.html index b2fab2a03..3bbe8357c 100644 --- a/docs/next/api/geoprocessing/functions/getSketchToMpaProtectionLevel/index.html +++ b/docs/next/api/geoprocessing/functions/getSketchToMpaProtectionLevel/index.html @@ -4,7 +4,7 @@ getSketchToMpaProtectionLevel() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getSum/index.html b/docs/next/api/geoprocessing/functions/getSum/index.html index 7650069e9..3efe14371 100644 --- a/docs/next/api/geoprocessing/functions/getSum/index.html +++ b/docs/next/api/geoprocessing/functions/getSum/index.html @@ -4,7 +4,7 @@ getSum() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getUserAttribute/index.html b/docs/next/api/geoprocessing/functions/getUserAttribute/index.html index 5d6f1c802..b5f885b04 100644 --- a/docs/next/api/geoprocessing/functions/getUserAttribute/index.html +++ b/docs/next/api/geoprocessing/functions/getUserAttribute/index.html @@ -4,7 +4,7 @@ getUserAttribute() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getVectorDatasourceById/index.html b/docs/next/api/geoprocessing/functions/getVectorDatasourceById/index.html index daed347f0..f432c8b7b 100644 --- a/docs/next/api/geoprocessing/functions/getVectorDatasourceById/index.html +++ b/docs/next/api/geoprocessing/functions/getVectorDatasourceById/index.html @@ -4,7 +4,7 @@ getVectorDatasourceById() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/getZoneClassificationName/index.html b/docs/next/api/geoprocessing/functions/getZoneClassificationName/index.html index b7af713b4..c71e25c7b 100644 --- a/docs/next/api/geoprocessing/functions/getZoneClassificationName/index.html +++ b/docs/next/api/geoprocessing/functions/getZoneClassificationName/index.html @@ -4,7 +4,7 @@ getZoneClassificationName() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/groupBy/index.html b/docs/next/api/geoprocessing/functions/groupBy/index.html index cc415c231..17645e157 100644 --- a/docs/next/api/geoprocessing/functions/groupBy/index.html +++ b/docs/next/api/geoprocessing/functions/groupBy/index.html @@ -4,7 +4,7 @@ groupBy() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/hasOwnProperty/index.html b/docs/next/api/geoprocessing/functions/hasOwnProperty/index.html index 11ff34d6e..439ba778c 100644 --- a/docs/next/api/geoprocessing/functions/hasOwnProperty/index.html +++ b/docs/next/api/geoprocessing/functions/hasOwnProperty/index.html @@ -4,7 +4,7 @@ hasOwnProperty() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/includeVirtualSketch/index.html b/docs/next/api/geoprocessing/functions/includeVirtualSketch/index.html index 8b895f922..73577e48f 100644 --- a/docs/next/api/geoprocessing/functions/includeVirtualSketch/index.html +++ b/docs/next/api/geoprocessing/functions/includeVirtualSketch/index.html @@ -4,7 +4,7 @@ includeVirtualSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/intersectInChunks/index.html b/docs/next/api/geoprocessing/functions/intersectInChunks/index.html index 9d4b6aa09..8c2e581c9 100644 --- a/docs/next/api/geoprocessing/functions/intersectInChunks/index.html +++ b/docs/next/api/geoprocessing/functions/intersectInChunks/index.html @@ -4,7 +4,7 @@ intersectInChunks() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/intersectSum/index.html b/docs/next/api/geoprocessing/functions/intersectSum/index.html index 43e766746..5e6bfb13b 100644 --- a/docs/next/api/geoprocessing/functions/intersectSum/index.html +++ b/docs/next/api/geoprocessing/functions/intersectSum/index.html @@ -4,7 +4,7 @@ intersectSum() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isExternalDatasource/index.html b/docs/next/api/geoprocessing/functions/isExternalDatasource/index.html index 12cacd6fd..3358f6218 100644 --- a/docs/next/api/geoprocessing/functions/isExternalDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isExternalDatasource/index.html @@ -4,7 +4,7 @@ isExternalDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isExternalRasterDatasource/index.html b/docs/next/api/geoprocessing/functions/isExternalRasterDatasource/index.html index 6c91a3131..76b0c13b4 100644 --- a/docs/next/api/geoprocessing/functions/isExternalRasterDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isExternalRasterDatasource/index.html @@ -4,7 +4,7 @@ isExternalRasterDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isExternalVectorDatasource/index.html b/docs/next/api/geoprocessing/functions/isExternalVectorDatasource/index.html index 9ecc4298d..c3e115aec 100644 --- a/docs/next/api/geoprocessing/functions/isExternalVectorDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isExternalVectorDatasource/index.html @@ -4,7 +4,7 @@ isExternalVectorDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isFeature/index.html b/docs/next/api/geoprocessing/functions/isFeature/index.html index 1c3d5a4ae..5429d5768 100644 --- a/docs/next/api/geoprocessing/functions/isFeature/index.html +++ b/docs/next/api/geoprocessing/functions/isFeature/index.html @@ -4,7 +4,7 @@ isFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isFeatureCollection/index.html b/docs/next/api/geoprocessing/functions/isFeatureCollection/index.html index c54a06b7c..6ad3bd360 100644 --- a/docs/next/api/geoprocessing/functions/isFeatureCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isFeatureCollection/index.html @@ -4,7 +4,7 @@ isFeatureCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isGeometry/index.html b/docs/next/api/geoprocessing/functions/isGeometry/index.html index 9b1010a89..4a3469486 100644 --- a/docs/next/api/geoprocessing/functions/isGeometry/index.html +++ b/docs/next/api/geoprocessing/functions/isGeometry/index.html @@ -4,7 +4,7 @@ isGeometry() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isImportRasterDatasourceConfig/index.html b/docs/next/api/geoprocessing/functions/isImportRasterDatasourceConfig/index.html index 59e71d025..ea4e879b5 100644 --- a/docs/next/api/geoprocessing/functions/isImportRasterDatasourceConfig/index.html +++ b/docs/next/api/geoprocessing/functions/isImportRasterDatasourceConfig/index.html @@ -4,7 +4,7 @@ isImportRasterDatasourceConfig() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isImportVectorDatasourceConfig/index.html b/docs/next/api/geoprocessing/functions/isImportVectorDatasourceConfig/index.html index 12d781fd9..644fecc35 100644 --- a/docs/next/api/geoprocessing/functions/isImportVectorDatasourceConfig/index.html +++ b/docs/next/api/geoprocessing/functions/isImportVectorDatasourceConfig/index.html @@ -4,7 +4,7 @@ isImportVectorDatasourceConfig() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isInternalRasterDatasource/index.html b/docs/next/api/geoprocessing/functions/isInternalRasterDatasource/index.html index d9d026849..507bd6c75 100644 --- a/docs/next/api/geoprocessing/functions/isInternalRasterDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isInternalRasterDatasource/index.html @@ -4,7 +4,7 @@ isInternalRasterDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isInternalVectorDatasource/index.html b/docs/next/api/geoprocessing/functions/isInternalVectorDatasource/index.html index af6e244ce..eef510981 100644 --- a/docs/next/api/geoprocessing/functions/isInternalVectorDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isInternalVectorDatasource/index.html @@ -4,7 +4,7 @@ isInternalVectorDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isLineStringFeature/index.html b/docs/next/api/geoprocessing/functions/isLineStringFeature/index.html index d9bc242b5..026f10141 100644 --- a/docs/next/api/geoprocessing/functions/isLineStringFeature/index.html +++ b/docs/next/api/geoprocessing/functions/isLineStringFeature/index.html @@ -4,7 +4,7 @@ isLineStringFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isLineStringSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isLineStringSketchCollection/index.html index ed94b7abd..a6c853697 100644 --- a/docs/next/api/geoprocessing/functions/isLineStringSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isLineStringSketchCollection/index.html @@ -4,7 +4,7 @@ isLineStringSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isMetric/index.html b/docs/next/api/geoprocessing/functions/isMetric/index.html index bf897bc25..01b2b4631 100644 --- a/docs/next/api/geoprocessing/functions/isMetric/index.html +++ b/docs/next/api/geoprocessing/functions/isMetric/index.html @@ -4,7 +4,7 @@ isMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isMetricArray/index.html b/docs/next/api/geoprocessing/functions/isMetricArray/index.html index 5ea2cd4c8..2b49efd2c 100644 --- a/docs/next/api/geoprocessing/functions/isMetricArray/index.html +++ b/docs/next/api/geoprocessing/functions/isMetricArray/index.html @@ -4,7 +4,7 @@ isMetricArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isMetricPack/index.html b/docs/next/api/geoprocessing/functions/isMetricPack/index.html index 7680af459..28e74bbbb 100644 --- a/docs/next/api/geoprocessing/functions/isMetricPack/index.html +++ b/docs/next/api/geoprocessing/functions/isMetricPack/index.html @@ -4,7 +4,7 @@ isMetricPack() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isMultiPolygonFeature/index.html b/docs/next/api/geoprocessing/functions/isMultiPolygonFeature/index.html index cbb2e0a2b..46b0ca0d9 100644 --- a/docs/next/api/geoprocessing/functions/isMultiPolygonFeature/index.html +++ b/docs/next/api/geoprocessing/functions/isMultiPolygonFeature/index.html @@ -4,7 +4,7 @@ isMultiPolygonFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isMultiPolygonSketch/index.html b/docs/next/api/geoprocessing/functions/isMultiPolygonSketch/index.html index a7623b8ff..8e9d1cf65 100644 --- a/docs/next/api/geoprocessing/functions/isMultiPolygonSketch/index.html +++ b/docs/next/api/geoprocessing/functions/isMultiPolygonSketch/index.html @@ -4,7 +4,7 @@ isMultiPolygonSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isMultiPolygonSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isMultiPolygonSketchCollection/index.html index 1828cfea5..ee93239c2 100644 --- a/docs/next/api/geoprocessing/functions/isMultiPolygonSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isMultiPolygonSketchCollection/index.html @@ -4,7 +4,7 @@ isMultiPolygonSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isNullSketch/index.html b/docs/next/api/geoprocessing/functions/isNullSketch/index.html index 5d67a1470..bf2cdaa7a 100644 --- a/docs/next/api/geoprocessing/functions/isNullSketch/index.html +++ b/docs/next/api/geoprocessing/functions/isNullSketch/index.html @@ -4,7 +4,7 @@ isNullSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isNullSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isNullSketchCollection/index.html index c19b7672c..3ee3a9c64 100644 --- a/docs/next/api/geoprocessing/functions/isNullSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isNullSketchCollection/index.html @@ -4,7 +4,7 @@ isNullSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isObject/index.html b/docs/next/api/geoprocessing/functions/isObject/index.html index d4be061ab..c054bcfaa 100644 --- a/docs/next/api/geoprocessing/functions/isObject/index.html +++ b/docs/next/api/geoprocessing/functions/isObject/index.html @@ -4,7 +4,7 @@ isObject() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPointFeature/index.html b/docs/next/api/geoprocessing/functions/isPointFeature/index.html index 35a92fa32..c4b1726cf 100644 --- a/docs/next/api/geoprocessing/functions/isPointFeature/index.html +++ b/docs/next/api/geoprocessing/functions/isPointFeature/index.html @@ -4,7 +4,7 @@ isPointFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPointSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isPointSketchCollection/index.html index 27c7fbe72..cae642413 100644 --- a/docs/next/api/geoprocessing/functions/isPointSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isPointSketchCollection/index.html @@ -4,7 +4,7 @@ isPointSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPolygonAllSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isPolygonAllSketchCollection/index.html index eed6e22a4..e81b14b69 100644 --- a/docs/next/api/geoprocessing/functions/isPolygonAllSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isPolygonAllSketchCollection/index.html @@ -4,7 +4,7 @@ isPolygonAllSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPolygonAnyFeature/index.html b/docs/next/api/geoprocessing/functions/isPolygonAnyFeature/index.html index 93de63f86..350a8d8b3 100644 --- a/docs/next/api/geoprocessing/functions/isPolygonAnyFeature/index.html +++ b/docs/next/api/geoprocessing/functions/isPolygonAnyFeature/index.html @@ -4,7 +4,7 @@ isPolygonAnyFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPolygonFeature/index.html b/docs/next/api/geoprocessing/functions/isPolygonFeature/index.html index 7342e665a..00ce453ad 100644 --- a/docs/next/api/geoprocessing/functions/isPolygonFeature/index.html +++ b/docs/next/api/geoprocessing/functions/isPolygonFeature/index.html @@ -4,7 +4,7 @@ isPolygonFeature() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPolygonFeatureArray/index.html b/docs/next/api/geoprocessing/functions/isPolygonFeatureArray/index.html index a277ac6fd..dc100392d 100644 --- a/docs/next/api/geoprocessing/functions/isPolygonFeatureArray/index.html +++ b/docs/next/api/geoprocessing/functions/isPolygonFeatureArray/index.html @@ -4,7 +4,7 @@ isPolygonFeatureArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPolygonSketch/index.html b/docs/next/api/geoprocessing/functions/isPolygonSketch/index.html index 44c7b5656..84fc3fb1e 100644 --- a/docs/next/api/geoprocessing/functions/isPolygonSketch/index.html +++ b/docs/next/api/geoprocessing/functions/isPolygonSketch/index.html @@ -4,7 +4,7 @@ isPolygonSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isPolygonSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isPolygonSketchCollection/index.html index af913af43..ac3896184 100644 --- a/docs/next/api/geoprocessing/functions/isPolygonSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isPolygonSketchCollection/index.html @@ -4,7 +4,7 @@ isPolygonSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isRasterDatasource/index.html b/docs/next/api/geoprocessing/functions/isRasterDatasource/index.html index 0061a9449..236cffdec 100644 --- a/docs/next/api/geoprocessing/functions/isRasterDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isRasterDatasource/index.html @@ -4,7 +4,7 @@ isRasterDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isRbcsProtectionLevel/index.html b/docs/next/api/geoprocessing/functions/isRbcsProtectionLevel/index.html index e38b4b33e..66392e1ed 100644 --- a/docs/next/api/geoprocessing/functions/isRbcsProtectionLevel/index.html +++ b/docs/next/api/geoprocessing/functions/isRbcsProtectionLevel/index.html @@ -4,7 +4,7 @@ isRbcsProtectionLevel() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isSketch/index.html b/docs/next/api/geoprocessing/functions/isSketch/index.html index ed5e06400..33acfd9c6 100644 --- a/docs/next/api/geoprocessing/functions/isSketch/index.html +++ b/docs/next/api/geoprocessing/functions/isSketch/index.html @@ -4,7 +4,7 @@ isSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isSketchCollection/index.html b/docs/next/api/geoprocessing/functions/isSketchCollection/index.html index a97a1bf3a..8d924c889 100644 --- a/docs/next/api/geoprocessing/functions/isSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/isSketchCollection/index.html @@ -4,7 +4,7 @@ isSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isTruthyAttributeValue/index.html b/docs/next/api/geoprocessing/functions/isTruthyAttributeValue/index.html index 3ab3d2725..c97b4c911 100644 --- a/docs/next/api/geoprocessing/functions/isTruthyAttributeValue/index.html +++ b/docs/next/api/geoprocessing/functions/isTruthyAttributeValue/index.html @@ -4,7 +4,7 @@ isTruthyAttributeValue() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isVectorDatasource/index.html b/docs/next/api/geoprocessing/functions/isVectorDatasource/index.html index 097ea4181..e8b9786b5 100644 --- a/docs/next/api/geoprocessing/functions/isVectorDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isVectorDatasource/index.html @@ -4,7 +4,7 @@ isVectorDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/isinternalDatasource/index.html b/docs/next/api/geoprocessing/functions/isinternalDatasource/index.html index 2e1372be8..3b3630b1c 100644 --- a/docs/next/api/geoprocessing/functions/isinternalDatasource/index.html +++ b/docs/next/api/geoprocessing/functions/isinternalDatasource/index.html @@ -4,7 +4,7 @@ isinternalDatasource() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/keyBy/index.html b/docs/next/api/geoprocessing/functions/keyBy/index.html index 37f5cf15c..b530ac3b8 100644 --- a/docs/next/api/geoprocessing/functions/keyBy/index.html +++ b/docs/next/api/geoprocessing/functions/keyBy/index.html @@ -4,7 +4,7 @@ keyBy() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/loadCog/index.html b/docs/next/api/geoprocessing/functions/loadCog/index.html index a9e0b069d..cb59b5ef2 100644 --- a/docs/next/api/geoprocessing/functions/loadCog/index.html +++ b/docs/next/api/geoprocessing/functions/loadCog/index.html @@ -4,7 +4,7 @@ loadCog() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/loadFgb/index.html b/docs/next/api/geoprocessing/functions/loadFgb/index.html index d32315c30..294fe708a 100644 --- a/docs/next/api/geoprocessing/functions/loadFgb/index.html +++ b/docs/next/api/geoprocessing/functions/loadFgb/index.html @@ -4,7 +4,7 @@ loadFgb() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/loadFgbFromDisk/index.html b/docs/next/api/geoprocessing/functions/loadFgbFromDisk/index.html index 6f5932080..7c0d3458d 100644 --- a/docs/next/api/geoprocessing/functions/loadFgbFromDisk/index.html +++ b/docs/next/api/geoprocessing/functions/loadFgbFromDisk/index.html @@ -4,7 +4,7 @@ loadFgbFromDisk() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/maxWidth/index.html b/docs/next/api/geoprocessing/functions/maxWidth/index.html index bc111b40b..3f727e5ef 100644 --- a/docs/next/api/geoprocessing/functions/maxWidth/index.html +++ b/docs/next/api/geoprocessing/functions/maxWidth/index.html @@ -4,7 +4,7 @@ maxWidth() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/metricsForSketch/index.html b/docs/next/api/geoprocessing/functions/metricsForSketch/index.html index f807463f0..c7c51fd1a 100644 --- a/docs/next/api/geoprocessing/functions/metricsForSketch/index.html +++ b/docs/next/api/geoprocessing/functions/metricsForSketch/index.html @@ -4,7 +4,7 @@ metricsForSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/metricsSketchIds/index.html b/docs/next/api/geoprocessing/functions/metricsSketchIds/index.html index 39cbc9aaf..d77ac8da7 100644 --- a/docs/next/api/geoprocessing/functions/metricsSketchIds/index.html +++ b/docs/next/api/geoprocessing/functions/metricsSketchIds/index.html @@ -4,7 +4,7 @@ metricsSketchIds() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/metricsWithClassId/index.html b/docs/next/api/geoprocessing/functions/metricsWithClassId/index.html index de5a36755..9bb50a181 100644 --- a/docs/next/api/geoprocessing/functions/metricsWithClassId/index.html +++ b/docs/next/api/geoprocessing/functions/metricsWithClassId/index.html @@ -4,7 +4,7 @@ metricsWithClassId() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/metricsWithSketchId/index.html b/docs/next/api/geoprocessing/functions/metricsWithSketchId/index.html index bf5c66128..29411b162 100644 --- a/docs/next/api/geoprocessing/functions/metricsWithSketchId/index.html +++ b/docs/next/api/geoprocessing/functions/metricsWithSketchId/index.html @@ -4,7 +4,7 @@ metricsWithSketchId() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/minWidth/index.html b/docs/next/api/geoprocessing/functions/minWidth/index.html index 15350ddbd..bbc413232 100644 --- a/docs/next/api/geoprocessing/functions/minWidth/index.html +++ b/docs/next/api/geoprocessing/functions/minWidth/index.html @@ -4,7 +4,7 @@ minWidth() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/mpaClassMetric/index.html b/docs/next/api/geoprocessing/functions/mpaClassMetric/index.html index bd27d6417..a473090b9 100644 --- a/docs/next/api/geoprocessing/functions/mpaClassMetric/index.html +++ b/docs/next/api/geoprocessing/functions/mpaClassMetric/index.html @@ -4,7 +4,7 @@ mpaClassMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/mpaClassMetrics/index.html b/docs/next/api/geoprocessing/functions/mpaClassMetrics/index.html index 8d7531c49..3442afdbf 100644 --- a/docs/next/api/geoprocessing/functions/mpaClassMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/mpaClassMetrics/index.html @@ -4,7 +4,7 @@ mpaClassMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/nestMetrics/index.html b/docs/next/api/geoprocessing/functions/nestMetrics/index.html index a3ca0e9d7..373c8162f 100644 --- a/docs/next/api/geoprocessing/functions/nestMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/nestMetrics/index.html @@ -4,7 +4,7 @@ nestMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/numberFormat/index.html b/docs/next/api/geoprocessing/functions/numberFormat/index.html index e99951c70..97ac9c09a 100644 --- a/docs/next/api/geoprocessing/functions/numberFormat/index.html +++ b/docs/next/api/geoprocessing/functions/numberFormat/index.html @@ -4,7 +4,7 @@ numberFormat() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapArea/index.html b/docs/next/api/geoprocessing/functions/overlapArea/index.html index 8a7368f83..9132ae2e0 100644 --- a/docs/next/api/geoprocessing/functions/overlapArea/index.html +++ b/docs/next/api/geoprocessing/functions/overlapArea/index.html @@ -4,7 +4,7 @@ ~~overlapArea()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapAreaGroupMetrics/index.html b/docs/next/api/geoprocessing/functions/overlapAreaGroupMetrics/index.html index f98257767..fdfa67c8c 100644 --- a/docs/next/api/geoprocessing/functions/overlapAreaGroupMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/overlapAreaGroupMetrics/index.html @@ -4,7 +4,7 @@ ~~overlapAreaGroupMetrics()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapFeatures/index.html b/docs/next/api/geoprocessing/functions/overlapFeatures/index.html index a96254a67..4830d91c9 100644 --- a/docs/next/api/geoprocessing/functions/overlapFeatures/index.html +++ b/docs/next/api/geoprocessing/functions/overlapFeatures/index.html @@ -4,7 +4,7 @@ ~~overlapFeatures()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapFeaturesGroupMetrics/index.html b/docs/next/api/geoprocessing/functions/overlapFeaturesGroupMetrics/index.html index a824a931f..43f1fde0a 100644 --- a/docs/next/api/geoprocessing/functions/overlapFeaturesGroupMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/overlapFeaturesGroupMetrics/index.html @@ -4,7 +4,7 @@ overlapFeaturesGroupMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapGroupMetrics/index.html b/docs/next/api/geoprocessing/functions/overlapGroupMetrics/index.html index 2f4161c51..fafa854ea 100644 --- a/docs/next/api/geoprocessing/functions/overlapGroupMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/overlapGroupMetrics/index.html @@ -4,7 +4,7 @@ overlapGroupMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapPolygonArea/index.html b/docs/next/api/geoprocessing/functions/overlapPolygonArea/index.html index 392161136..d26962c6e 100644 --- a/docs/next/api/geoprocessing/functions/overlapPolygonArea/index.html +++ b/docs/next/api/geoprocessing/functions/overlapPolygonArea/index.html @@ -4,7 +4,7 @@ overlapPolygonArea() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapPolygonSum/index.html b/docs/next/api/geoprocessing/functions/overlapPolygonSum/index.html index 7a54876db..b5ce36fa0 100644 --- a/docs/next/api/geoprocessing/functions/overlapPolygonSum/index.html +++ b/docs/next/api/geoprocessing/functions/overlapPolygonSum/index.html @@ -4,7 +4,7 @@ overlapPolygonSum() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapRasterClass/index.html b/docs/next/api/geoprocessing/functions/overlapRasterClass/index.html index 865a6889d..92c2260f9 100644 --- a/docs/next/api/geoprocessing/functions/overlapRasterClass/index.html +++ b/docs/next/api/geoprocessing/functions/overlapRasterClass/index.html @@ -4,7 +4,7 @@ ~~overlapRasterClass()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapRasterGroupMetrics/index.html b/docs/next/api/geoprocessing/functions/overlapRasterGroupMetrics/index.html index 606bac5cb..68dcf8d90 100644 --- a/docs/next/api/geoprocessing/functions/overlapRasterGroupMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/overlapRasterGroupMetrics/index.html @@ -4,7 +4,7 @@ overlapRasterGroupMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/overlapSubarea/index.html b/docs/next/api/geoprocessing/functions/overlapSubarea/index.html index 8eea4d38a..607e325e1 100644 --- a/docs/next/api/geoprocessing/functions/overlapSubarea/index.html +++ b/docs/next/api/geoprocessing/functions/overlapSubarea/index.html @@ -4,7 +4,7 @@ ~~overlapSubarea()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/packMetrics/index.html b/docs/next/api/geoprocessing/functions/packMetrics/index.html index bfde2757c..ab7486176 100644 --- a/docs/next/api/geoprocessing/functions/packMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/packMetrics/index.html @@ -4,7 +4,7 @@ packMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/parseGeoraster/index.html b/docs/next/api/geoprocessing/functions/parseGeoraster/index.html index 2cede75df..d8d5a27aa 100644 --- a/docs/next/api/geoprocessing/functions/parseGeoraster/index.html +++ b/docs/next/api/geoprocessing/functions/parseGeoraster/index.html @@ -4,7 +4,7 @@ parseGeoraster() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/parseLambdaResponse/index.html b/docs/next/api/geoprocessing/functions/parseLambdaResponse/index.html index a2daf7d9d..95e226746 100644 --- a/docs/next/api/geoprocessing/functions/parseLambdaResponse/index.html +++ b/docs/next/api/geoprocessing/functions/parseLambdaResponse/index.html @@ -4,7 +4,7 @@ parseLambdaResponse() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/percentGoalWithEdge/index.html b/docs/next/api/geoprocessing/functions/percentGoalWithEdge/index.html index 2b6e8f1ca..37129cf3b 100644 --- a/docs/next/api/geoprocessing/functions/percentGoalWithEdge/index.html +++ b/docs/next/api/geoprocessing/functions/percentGoalWithEdge/index.html @@ -4,7 +4,7 @@ percentGoalWithEdge() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/percentWithEdge/index.html b/docs/next/api/geoprocessing/functions/percentWithEdge/index.html index c440ba68d..7d1bb1a4e 100644 --- a/docs/next/api/geoprocessing/functions/percentWithEdge/index.html +++ b/docs/next/api/geoprocessing/functions/percentWithEdge/index.html @@ -4,7 +4,7 @@ percentWithEdge() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/randomFloat/index.html b/docs/next/api/geoprocessing/functions/randomFloat/index.html index 05a529098..dda7f61a6 100644 --- a/docs/next/api/geoprocessing/functions/randomFloat/index.html +++ b/docs/next/api/geoprocessing/functions/randomFloat/index.html @@ -4,7 +4,7 @@ randomFloat() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/randomInt/index.html b/docs/next/api/geoprocessing/functions/randomInt/index.html index 36e0e5f85..ef7b424f4 100644 --- a/docs/next/api/geoprocessing/functions/randomInt/index.html +++ b/docs/next/api/geoprocessing/functions/randomInt/index.html @@ -4,7 +4,7 @@ randomInt() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rasterMetrics/index.html b/docs/next/api/geoprocessing/functions/rasterMetrics/index.html index 002439fd1..818626e41 100644 --- a/docs/next/api/geoprocessing/functions/rasterMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/rasterMetrics/index.html @@ -4,7 +4,7 @@ rasterMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rasterStats/index.html b/docs/next/api/geoprocessing/functions/rasterStats/index.html index b19640ca0..ba7e0e258 100644 --- a/docs/next/api/geoprocessing/functions/rasterStats/index.html +++ b/docs/next/api/geoprocessing/functions/rasterStats/index.html @@ -4,7 +4,7 @@ rasterStats() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rasterStatsToMetrics/index.html b/docs/next/api/geoprocessing/functions/rasterStatsToMetrics/index.html index 5a9f83db5..168528114 100644 --- a/docs/next/api/geoprocessing/functions/rasterStatsToMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/rasterStatsToMetrics/index.html @@ -4,7 +4,7 @@ rasterStatsToMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rbcsMpaToMetric/index.html b/docs/next/api/geoprocessing/functions/rbcsMpaToMetric/index.html index 883d0d08e..4bf63ef54 100644 --- a/docs/next/api/geoprocessing/functions/rbcsMpaToMetric/index.html +++ b/docs/next/api/geoprocessing/functions/rbcsMpaToMetric/index.html @@ -4,7 +4,7 @@ rbcsMpaToMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rbcsZoneToMetric/index.html b/docs/next/api/geoprocessing/functions/rbcsZoneToMetric/index.html index e9fbe9084..72169e481 100644 --- a/docs/next/api/geoprocessing/functions/rbcsZoneToMetric/index.html +++ b/docs/next/api/geoprocessing/functions/rbcsZoneToMetric/index.html @@ -4,7 +4,7 @@ rbcsZoneToMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rekeyMetrics/index.html b/docs/next/api/geoprocessing/functions/rekeyMetrics/index.html index 4db379b26..d06ed08f6 100644 --- a/docs/next/api/geoprocessing/functions/rekeyMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/rekeyMetrics/index.html @@ -4,7 +4,7 @@ rekeyMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/rekeyObject/index.html b/docs/next/api/geoprocessing/functions/rekeyObject/index.html index a8dd5ff32..309b268bd 100644 --- a/docs/next/api/geoprocessing/functions/rekeyObject/index.html +++ b/docs/next/api/geoprocessing/functions/rekeyObject/index.html @@ -4,7 +4,7 @@ rekeyObject() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/removeOverlap/index.html b/docs/next/api/geoprocessing/functions/removeOverlap/index.html index 4176357e7..c57babcc0 100644 --- a/docs/next/api/geoprocessing/functions/removeOverlap/index.html +++ b/docs/next/api/geoprocessing/functions/removeOverlap/index.html @@ -4,7 +4,7 @@ removeOverlap() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/removeSketchCollPolygonHoles/index.html b/docs/next/api/geoprocessing/functions/removeSketchCollPolygonHoles/index.html index b12d457bb..65143cde2 100644 --- a/docs/next/api/geoprocessing/functions/removeSketchCollPolygonHoles/index.html +++ b/docs/next/api/geoprocessing/functions/removeSketchCollPolygonHoles/index.html @@ -4,7 +4,7 @@ removeSketchCollPolygonHoles() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/removeSketchPolygonHoles/index.html b/docs/next/api/geoprocessing/functions/removeSketchPolygonHoles/index.html index b031ae786..8e3358ff0 100644 --- a/docs/next/api/geoprocessing/functions/removeSketchPolygonHoles/index.html +++ b/docs/next/api/geoprocessing/functions/removeSketchPolygonHoles/index.html @@ -4,7 +4,7 @@ removeSketchPolygonHoles() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/roundDecimal/index.html b/docs/next/api/geoprocessing/functions/roundDecimal/index.html index ab26f0773..f4c3bbffa 100644 --- a/docs/next/api/geoprocessing/functions/roundDecimal/index.html +++ b/docs/next/api/geoprocessing/functions/roundDecimal/index.html @@ -4,7 +4,7 @@ roundDecimal() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/roundDecimalFormat/index.html b/docs/next/api/geoprocessing/functions/roundDecimalFormat/index.html index dd40ad923..a6578d40c 100644 --- a/docs/next/api/geoprocessing/functions/roundDecimalFormat/index.html +++ b/docs/next/api/geoprocessing/functions/roundDecimalFormat/index.html @@ -4,7 +4,7 @@ roundDecimalFormat() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/roundLower/index.html b/docs/next/api/geoprocessing/functions/roundLower/index.html index 3069a8e4d..07f8f11fe 100644 --- a/docs/next/api/geoprocessing/functions/roundLower/index.html +++ b/docs/next/api/geoprocessing/functions/roundLower/index.html @@ -4,7 +4,7 @@ roundLower() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/runLambdaWorker/index.html b/docs/next/api/geoprocessing/functions/runLambdaWorker/index.html index 41a6621c8..83936f869 100644 --- a/docs/next/api/geoprocessing/functions/runLambdaWorker/index.html +++ b/docs/next/api/geoprocessing/functions/runLambdaWorker/index.html @@ -4,7 +4,7 @@ runLambdaWorker() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/sampleSketchReportContextValue/index.html b/docs/next/api/geoprocessing/functions/sampleSketchReportContextValue/index.html index 23acaa90c..38351e530 100644 --- a/docs/next/api/geoprocessing/functions/sampleSketchReportContextValue/index.html +++ b/docs/next/api/geoprocessing/functions/sampleSketchReportContextValue/index.html @@ -4,7 +4,7 @@ sampleSketchReportContextValue() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/scanTasks/index.html b/docs/next/api/geoprocessing/functions/scanTasks/index.html index 26392d055..65a61ffdc 100644 --- a/docs/next/api/geoprocessing/functions/scanTasks/index.html +++ b/docs/next/api/geoprocessing/functions/scanTasks/index.html @@ -4,7 +4,7 @@ scanTasks() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/sketchToId/index.html b/docs/next/api/geoprocessing/functions/sketchToId/index.html index 8fb5547bf..48ea718ea 100644 --- a/docs/next/api/geoprocessing/functions/sketchToId/index.html +++ b/docs/next/api/geoprocessing/functions/sketchToId/index.html @@ -4,7 +4,7 @@ sketchToId() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/sketchToZone/index.html b/docs/next/api/geoprocessing/functions/sketchToZone/index.html index e1dd4b43d..d9db2dc50 100644 --- a/docs/next/api/geoprocessing/functions/sketchToZone/index.html +++ b/docs/next/api/geoprocessing/functions/sketchToZone/index.html @@ -4,7 +4,7 @@ sketchToZone() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/sortMetrics/index.html b/docs/next/api/geoprocessing/functions/sortMetrics/index.html index 1bbf94202..30aac852e 100644 --- a/docs/next/api/geoprocessing/functions/sortMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/sortMetrics/index.html @@ -4,7 +4,7 @@ sortMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/sortMetricsDisplayOrder/index.html b/docs/next/api/geoprocessing/functions/sortMetricsDisplayOrder/index.html index 1063c08cc..83c0f4ffe 100644 --- a/docs/next/api/geoprocessing/functions/sortMetricsDisplayOrder/index.html +++ b/docs/next/api/geoprocessing/functions/sortMetricsDisplayOrder/index.html @@ -4,7 +4,7 @@ sortMetricsDisplayOrder() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/splitBBoxAntimeridian/index.html b/docs/next/api/geoprocessing/functions/splitBBoxAntimeridian/index.html index 5ae70d9bf..da1e45545 100644 --- a/docs/next/api/geoprocessing/functions/splitBBoxAntimeridian/index.html +++ b/docs/next/api/geoprocessing/functions/splitBBoxAntimeridian/index.html @@ -4,7 +4,7 @@ splitBBoxAntimeridian() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/splitFeatureAntimeridian/index.html b/docs/next/api/geoprocessing/functions/splitFeatureAntimeridian/index.html index c1d955da8..693654527 100644 --- a/docs/next/api/geoprocessing/functions/splitFeatureAntimeridian/index.html +++ b/docs/next/api/geoprocessing/functions/splitFeatureAntimeridian/index.html @@ -4,7 +4,7 @@ splitFeatureAntimeridian() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/splitSketchAntimeridian/index.html b/docs/next/api/geoprocessing/functions/splitSketchAntimeridian/index.html index 168912c15..195e80865 100644 --- a/docs/next/api/geoprocessing/functions/splitSketchAntimeridian/index.html +++ b/docs/next/api/geoprocessing/functions/splitSketchAntimeridian/index.html @@ -4,7 +4,7 @@ splitSketchAntimeridian() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/squareMeterToKilometer/index.html b/docs/next/api/geoprocessing/functions/squareMeterToKilometer/index.html index ee5b11e64..440f61290 100644 --- a/docs/next/api/geoprocessing/functions/squareMeterToKilometer/index.html +++ b/docs/next/api/geoprocessing/functions/squareMeterToKilometer/index.html @@ -4,7 +4,7 @@ squareMeterToKilometer() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/squareMeterToMile/index.html b/docs/next/api/geoprocessing/functions/squareMeterToMile/index.html index a60b886b8..eb5093c6f 100644 --- a/docs/next/api/geoprocessing/functions/squareMeterToMile/index.html +++ b/docs/next/api/geoprocessing/functions/squareMeterToMile/index.html @@ -4,7 +4,7 @@ squareMeterToMile() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/testWithinPerc/index.html b/docs/next/api/geoprocessing/functions/testWithinPerc/index.html index 6243fae04..a3500f05d 100644 --- a/docs/next/api/geoprocessing/functions/testWithinPerc/index.html +++ b/docs/next/api/geoprocessing/functions/testWithinPerc/index.html @@ -4,7 +4,7 @@ testWithinPerc() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toChildProperties/index.html b/docs/next/api/geoprocessing/functions/toChildProperties/index.html index 2973d2f0e..f4a3799c2 100644 --- a/docs/next/api/geoprocessing/functions/toChildProperties/index.html +++ b/docs/next/api/geoprocessing/functions/toChildProperties/index.html @@ -4,7 +4,7 @@ toChildProperties() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toFeatureArray/index.html b/docs/next/api/geoprocessing/functions/toFeatureArray/index.html index 7ef901463..5fd54d581 100644 --- a/docs/next/api/geoprocessing/functions/toFeatureArray/index.html +++ b/docs/next/api/geoprocessing/functions/toFeatureArray/index.html @@ -4,7 +4,7 @@ toFeatureArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toFeaturePolygonArray/index.html b/docs/next/api/geoprocessing/functions/toFeaturePolygonArray/index.html index 4ed152379..09d5adbf7 100644 --- a/docs/next/api/geoprocessing/functions/toFeaturePolygonArray/index.html +++ b/docs/next/api/geoprocessing/functions/toFeaturePolygonArray/index.html @@ -4,7 +4,7 @@ toFeaturePolygonArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toJsonFile/index.html b/docs/next/api/geoprocessing/functions/toJsonFile/index.html index 59880ad3c..4103fc5c0 100644 --- a/docs/next/api/geoprocessing/functions/toJsonFile/index.html +++ b/docs/next/api/geoprocessing/functions/toJsonFile/index.html @@ -4,7 +4,7 @@ toJsonFile() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toMultiPolygon/index.html b/docs/next/api/geoprocessing/functions/toMultiPolygon/index.html index 3f3740ede..b9bca4c16 100644 --- a/docs/next/api/geoprocessing/functions/toMultiPolygon/index.html +++ b/docs/next/api/geoprocessing/functions/toMultiPolygon/index.html @@ -4,7 +4,7 @@ toMultiPolygon() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toNullSketch/index.html b/docs/next/api/geoprocessing/functions/toNullSketch/index.html index ab7b8d050..f2cae0ec2 100644 --- a/docs/next/api/geoprocessing/functions/toNullSketch/index.html +++ b/docs/next/api/geoprocessing/functions/toNullSketch/index.html @@ -4,7 +4,7 @@ toNullSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toNullSketchArray/index.html b/docs/next/api/geoprocessing/functions/toNullSketchArray/index.html index af8bc57fd..2f8e26277 100644 --- a/docs/next/api/geoprocessing/functions/toNullSketchArray/index.html +++ b/docs/next/api/geoprocessing/functions/toNullSketchArray/index.html @@ -4,7 +4,7 @@ toNullSketchArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toPercentMetric/index.html b/docs/next/api/geoprocessing/functions/toPercentMetric/index.html index 2dd5cdf9d..b6bc40824 100644 --- a/docs/next/api/geoprocessing/functions/toPercentMetric/index.html +++ b/docs/next/api/geoprocessing/functions/toPercentMetric/index.html @@ -4,7 +4,7 @@ toPercentMetric() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toRasterProjection/index.html b/docs/next/api/geoprocessing/functions/toRasterProjection/index.html index 3667e29f0..35b222f4a 100644 --- a/docs/next/api/geoprocessing/functions/toRasterProjection/index.html +++ b/docs/next/api/geoprocessing/functions/toRasterProjection/index.html @@ -4,7 +4,7 @@ toRasterProjection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toShortSketches/index.html b/docs/next/api/geoprocessing/functions/toShortSketches/index.html index a21bbc375..56a7f1433 100644 --- a/docs/next/api/geoprocessing/functions/toShortSketches/index.html +++ b/docs/next/api/geoprocessing/functions/toShortSketches/index.html @@ -4,7 +4,7 @@ ~~toShortSketches()~~ | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toSketchArray/index.html b/docs/next/api/geoprocessing/functions/toSketchArray/index.html index 7cb2a2448..b9ab488f1 100644 --- a/docs/next/api/geoprocessing/functions/toSketchArray/index.html +++ b/docs/next/api/geoprocessing/functions/toSketchArray/index.html @@ -4,7 +4,7 @@ toSketchArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/toSketchPropertiesArray/index.html b/docs/next/api/geoprocessing/functions/toSketchPropertiesArray/index.html index 695ed0d74..5210bf39d 100644 --- a/docs/next/api/geoprocessing/functions/toSketchPropertiesArray/index.html +++ b/docs/next/api/geoprocessing/functions/toSketchPropertiesArray/index.html @@ -4,7 +4,7 @@ toSketchPropertiesArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/unpackMetrics/index.html b/docs/next/api/geoprocessing/functions/unpackMetrics/index.html index e29c9dea1..98d096505 100644 --- a/docs/next/api/geoprocessing/functions/unpackMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/unpackMetrics/index.html @@ -4,7 +4,7 @@ unpackMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/updateCommandsSync/index.html b/docs/next/api/geoprocessing/functions/updateCommandsSync/index.html index 2297c3957..5e161adc0 100644 --- a/docs/next/api/geoprocessing/functions/updateCommandsSync/index.html +++ b/docs/next/api/geoprocessing/functions/updateCommandsSync/index.html @@ -4,7 +4,7 @@ updateCommandsSync() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/valueFormatter/index.html b/docs/next/api/geoprocessing/functions/valueFormatter/index.html index bc086b229..0a470b36b 100644 --- a/docs/next/api/geoprocessing/functions/valueFormatter/index.html +++ b/docs/next/api/geoprocessing/functions/valueFormatter/index.html @@ -4,7 +4,7 @@ valueFormatter() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/zeroPolygon/index.html b/docs/next/api/geoprocessing/functions/zeroPolygon/index.html index 86b251750..146de66c1 100644 --- a/docs/next/api/geoprocessing/functions/zeroPolygon/index.html +++ b/docs/next/api/geoprocessing/functions/zeroPolygon/index.html @@ -4,7 +4,7 @@ zeroPolygon() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/zeroSketch/index.html b/docs/next/api/geoprocessing/functions/zeroSketch/index.html index 7ad3fa899..05b35ec78 100644 --- a/docs/next/api/geoprocessing/functions/zeroSketch/index.html +++ b/docs/next/api/geoprocessing/functions/zeroSketch/index.html @@ -4,7 +4,7 @@ zeroSketch() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/zeroSketchArray/index.html b/docs/next/api/geoprocessing/functions/zeroSketchArray/index.html index 149fc8d85..1a750c707 100644 --- a/docs/next/api/geoprocessing/functions/zeroSketchArray/index.html +++ b/docs/next/api/geoprocessing/functions/zeroSketchArray/index.html @@ -4,7 +4,7 @@ zeroSketchArray() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/zeroSketchCollection/index.html b/docs/next/api/geoprocessing/functions/zeroSketchCollection/index.html index eb8f097b5..79e7f39e3 100644 --- a/docs/next/api/geoprocessing/functions/zeroSketchCollection/index.html +++ b/docs/next/api/geoprocessing/functions/zeroSketchCollection/index.html @@ -4,7 +4,7 @@ zeroSketchCollection() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/functions/zoneClassMetrics/index.html b/docs/next/api/geoprocessing/functions/zoneClassMetrics/index.html index 437c540b9..4678f51fc 100644 --- a/docs/next/api/geoprocessing/functions/zoneClassMetrics/index.html +++ b/docs/next/api/geoprocessing/functions/zoneClassMetrics/index.html @@ -4,7 +4,7 @@ zoneClassMetrics() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/index.html b/docs/next/api/geoprocessing/index.html index 7e7d0ee35..0a7fec215 100644 --- a/docs/next/api/geoprocessing/index.html +++ b/docs/next/api/geoprocessing/index.html @@ -4,7 +4,7 @@ geoprocessing | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/BaseImportDatasourceConfig/index.html b/docs/next/api/geoprocessing/interfaces/BaseImportDatasourceConfig/index.html index 14078a20c..bdaf83d68 100644 --- a/docs/next/api/geoprocessing/interfaces/BaseImportDatasourceConfig/index.html +++ b/docs/next/api/geoprocessing/interfaces/BaseImportDatasourceConfig/index.html @@ -4,7 +4,7 @@ BaseImportDatasourceConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/CalcStatsOptions/index.html b/docs/next/api/geoprocessing/interfaces/CalcStatsOptions/index.html index f7d452db5..a8a52d9ac 100644 --- a/docs/next/api/geoprocessing/interfaces/CalcStatsOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/CalcStatsOptions/index.html @@ -4,7 +4,7 @@ CalcStatsOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/ClipOptions/index.html b/docs/next/api/geoprocessing/interfaces/ClipOptions/index.html index fbcd26774..ec1560449 100644 --- a/docs/next/api/geoprocessing/interfaces/ClipOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/ClipOptions/index.html @@ -4,7 +4,7 @@ ClipOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/DatasourceClipOperation/index.html b/docs/next/api/geoprocessing/interfaces/DatasourceClipOperation/index.html index 82b5f1a59..c05211e96 100644 --- a/docs/next/api/geoprocessing/interfaces/DatasourceClipOperation/index.html +++ b/docs/next/api/geoprocessing/interfaces/DatasourceClipOperation/index.html @@ -4,7 +4,7 @@ DatasourceClipOperation | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/DatasourceOptions/index.html b/docs/next/api/geoprocessing/interfaces/DatasourceOptions/index.html index 79cffb90c..d3c36788b 100644 --- a/docs/next/api/geoprocessing/interfaces/DatasourceOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/DatasourceOptions/index.html @@ -4,7 +4,7 @@ DatasourceOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/DefaultExtraParams/index.html b/docs/next/api/geoprocessing/interfaces/DefaultExtraParams/index.html index 9e9aa50ba..f270b0a0d 100644 --- a/docs/next/api/geoprocessing/interfaces/DefaultExtraParams/index.html +++ b/docs/next/api/geoprocessing/interfaces/DefaultExtraParams/index.html @@ -4,7 +4,7 @@ DefaultExtraParams | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Feature/index.html b/docs/next/api/geoprocessing/interfaces/Feature/index.html index 8407ac1b1..82196f2d9 100644 --- a/docs/next/api/geoprocessing/interfaces/Feature/index.html +++ b/docs/next/api/geoprocessing/interfaces/Feature/index.html @@ -4,7 +4,7 @@ Feature\<G, P\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/FeatureClipOperation/index.html b/docs/next/api/geoprocessing/interfaces/FeatureClipOperation/index.html index 03688d19a..51b995e77 100644 --- a/docs/next/api/geoprocessing/interfaces/FeatureClipOperation/index.html +++ b/docs/next/api/geoprocessing/interfaces/FeatureClipOperation/index.html @@ -4,7 +4,7 @@ FeatureClipOperation | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/FeatureCollection/index.html b/docs/next/api/geoprocessing/interfaces/FeatureCollection/index.html index 5f0a936aa..1b3812ba8 100644 --- a/docs/next/api/geoprocessing/interfaces/FeatureCollection/index.html +++ b/docs/next/api/geoprocessing/interfaces/FeatureCollection/index.html @@ -4,7 +4,7 @@ FeatureCollection\<G, P\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/FeatureMap/index.html b/docs/next/api/geoprocessing/interfaces/FeatureMap/index.html index 264f37446..8498b0451 100644 --- a/docs/next/api/geoprocessing/interfaces/FeatureMap/index.html +++ b/docs/next/api/geoprocessing/interfaces/FeatureMap/index.html @@ -4,7 +4,7 @@ FeatureMap | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/FeatureTree/index.html b/docs/next/api/geoprocessing/interfaces/FeatureTree/index.html index 583a7160b..b63129e8c 100644 --- a/docs/next/api/geoprocessing/interfaces/FeatureTree/index.html +++ b/docs/next/api/geoprocessing/interfaces/FeatureTree/index.html @@ -4,7 +4,7 @@ FeatureTree | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/FgBoundingBox/index.html b/docs/next/api/geoprocessing/interfaces/FgBoundingBox/index.html index d54a7d424..02f1b13ac 100644 --- a/docs/next/api/geoprocessing/interfaces/FgBoundingBox/index.html +++ b/docs/next/api/geoprocessing/interfaces/FgBoundingBox/index.html @@ -4,7 +4,7 @@ FgBoundingBox | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeogProp/index.html b/docs/next/api/geoprocessing/interfaces/GeogProp/index.html index 5ae008da5..547a70a08 100644 --- a/docs/next/api/geoprocessing/interfaces/GeogProp/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeogProp/index.html @@ -4,7 +4,7 @@ GeogProp | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeometryCollection/index.html b/docs/next/api/geoprocessing/interfaces/GeometryCollection/index.html index b46d95ceb..260c0fbc4 100644 --- a/docs/next/api/geoprocessing/interfaces/GeometryCollection/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeometryCollection/index.html @@ -4,7 +4,7 @@ GeometryCollection\<G\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeoprocessingHandlerOptions/index.html b/docs/next/api/geoprocessing/interfaces/GeoprocessingHandlerOptions/index.html index fc9e94768..c6aa33758 100644 --- a/docs/next/api/geoprocessing/interfaces/GeoprocessingHandlerOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeoprocessingHandlerOptions/index.html @@ -4,7 +4,7 @@ GeoprocessingHandlerOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeoprocessingProject/index.html b/docs/next/api/geoprocessing/interfaces/GeoprocessingProject/index.html index e4b823ddf..330a85586 100644 --- a/docs/next/api/geoprocessing/interfaces/GeoprocessingProject/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeoprocessingProject/index.html @@ -4,7 +4,7 @@ GeoprocessingProject | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeoprocessingRequestModel/index.html b/docs/next/api/geoprocessing/interfaces/GeoprocessingRequestModel/index.html index a786814fe..4b4146d10 100644 --- a/docs/next/api/geoprocessing/interfaces/GeoprocessingRequestModel/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeoprocessingRequestModel/index.html @@ -4,7 +4,7 @@ GeoprocessingRequestModel\<G\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeoprocessingServiceMetadata/index.html b/docs/next/api/geoprocessing/interfaces/GeoprocessingServiceMetadata/index.html index ae9ca4435..951fe77fa 100644 --- a/docs/next/api/geoprocessing/interfaces/GeoprocessingServiceMetadata/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeoprocessingServiceMetadata/index.html @@ -4,7 +4,7 @@ GeoprocessingServiceMetadata | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GeoprocessingTask/index.html b/docs/next/api/geoprocessing/interfaces/GeoprocessingTask/index.html index b5889b70e..50c932c96 100644 --- a/docs/next/api/geoprocessing/interfaces/GeoprocessingTask/index.html +++ b/docs/next/api/geoprocessing/interfaces/GeoprocessingTask/index.html @@ -4,7 +4,7 @@ GeoprocessingTask\<ResultType\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Georaster/index.html b/docs/next/api/geoprocessing/interfaces/Georaster/index.html index 0450dd7f5..bde208833 100644 --- a/docs/next/api/geoprocessing/interfaces/Georaster/index.html +++ b/docs/next/api/geoprocessing/interfaces/Georaster/index.html @@ -4,7 +4,7 @@ Georaster | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/GetDatasourceFeaturesOptions/index.html b/docs/next/api/geoprocessing/interfaces/GetDatasourceFeaturesOptions/index.html index a3d4c7e4e..cc69bbdcc 100644 --- a/docs/next/api/geoprocessing/interfaces/GetDatasourceFeaturesOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/GetDatasourceFeaturesOptions/index.html @@ -4,7 +4,7 @@ GetDatasourceFeaturesOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Histogram/index.html b/docs/next/api/geoprocessing/interfaces/Histogram/index.html index 9b52c71d2..be58be0cd 100644 --- a/docs/next/api/geoprocessing/interfaces/Histogram/index.html +++ b/docs/next/api/geoprocessing/interfaces/Histogram/index.html @@ -4,7 +4,7 @@ Histogram | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/HistogramOptions/index.html b/docs/next/api/geoprocessing/interfaces/HistogramOptions/index.html index 6fc84be93..4112e1f4d 100644 --- a/docs/next/api/geoprocessing/interfaces/HistogramOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/HistogramOptions/index.html @@ -4,7 +4,7 @@ HistogramOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/IucnActivity/index.html b/docs/next/api/geoprocessing/interfaces/IucnActivity/index.html index 39ff4c832..4111b0938 100644 --- a/docs/next/api/geoprocessing/interfaces/IucnActivity/index.html +++ b/docs/next/api/geoprocessing/interfaces/IucnActivity/index.html @@ -4,7 +4,7 @@ IucnActivity | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/IucnActivityRank/index.html b/docs/next/api/geoprocessing/interfaces/IucnActivityRank/index.html index 68824b1b2..ced8877fa 100644 --- a/docs/next/api/geoprocessing/interfaces/IucnActivityRank/index.html +++ b/docs/next/api/geoprocessing/interfaces/IucnActivityRank/index.html @@ -4,7 +4,7 @@ IucnActivityRank | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/IucnCategory/index.html b/docs/next/api/geoprocessing/interfaces/IucnCategory/index.html index ce1acfa9b..c24d3fb2a 100644 --- a/docs/next/api/geoprocessing/interfaces/IucnCategory/index.html +++ b/docs/next/api/geoprocessing/interfaces/IucnCategory/index.html @@ -4,7 +4,7 @@ IucnCategory | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/IucnCategoryCombined/index.html b/docs/next/api/geoprocessing/interfaces/IucnCategoryCombined/index.html index 0ae59a37f..d381216e4 100644 --- a/docs/next/api/geoprocessing/interfaces/IucnCategoryCombined/index.html +++ b/docs/next/api/geoprocessing/interfaces/IucnCategoryCombined/index.html @@ -4,7 +4,7 @@ IucnCategoryCombined | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/LineString/index.html b/docs/next/api/geoprocessing/interfaces/LineString/index.html index 5b553e9af..f4ab62cf8 100644 --- a/docs/next/api/geoprocessing/interfaces/LineString/index.html +++ b/docs/next/api/geoprocessing/interfaces/LineString/index.html @@ -4,7 +4,7 @@ LineString | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/MetricGroupItem/index.html b/docs/next/api/geoprocessing/interfaces/MetricGroupItem/index.html index c0835aa6d..0d92b097c 100644 --- a/docs/next/api/geoprocessing/interfaces/MetricGroupItem/index.html +++ b/docs/next/api/geoprocessing/interfaces/MetricGroupItem/index.html @@ -4,7 +4,7 @@ MetricGroupItem\<ResultType\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/MetricPack/index.html b/docs/next/api/geoprocessing/interfaces/MetricPack/index.html index 0847bea58..348313f1d 100644 --- a/docs/next/api/geoprocessing/interfaces/MetricPack/index.html +++ b/docs/next/api/geoprocessing/interfaces/MetricPack/index.html @@ -4,7 +4,7 @@ MetricPack | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/MultiLineString/index.html b/docs/next/api/geoprocessing/interfaces/MultiLineString/index.html index 13873bfe2..aad8b3600 100644 --- a/docs/next/api/geoprocessing/interfaces/MultiLineString/index.html +++ b/docs/next/api/geoprocessing/interfaces/MultiLineString/index.html @@ -4,7 +4,7 @@ MultiLineString | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/MultiPolygon/index.html b/docs/next/api/geoprocessing/interfaces/MultiPolygon/index.html index e1b6a1e75..5e130b64c 100644 --- a/docs/next/api/geoprocessing/interfaces/MultiPolygon/index.html +++ b/docs/next/api/geoprocessing/interfaces/MultiPolygon/index.html @@ -4,7 +4,7 @@ MultiPolygon | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Node/index.html b/docs/next/api/geoprocessing/interfaces/Node/index.html index e4c471551..9830fb4cd 100644 --- a/docs/next/api/geoprocessing/interfaces/Node/index.html +++ b/docs/next/api/geoprocessing/interfaces/Node/index.html @@ -4,7 +4,7 @@ Node | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/NullSketch/index.html b/docs/next/api/geoprocessing/interfaces/NullSketch/index.html index be66e3d12..b4388302e 100644 --- a/docs/next/api/geoprocessing/interfaces/NullSketch/index.html +++ b/docs/next/api/geoprocessing/interfaces/NullSketch/index.html @@ -4,7 +4,7 @@ NullSketch | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/NullSketchCollection/index.html b/docs/next/api/geoprocessing/interfaces/NullSketchCollection/index.html index 63f2e917d..04655c931 100644 --- a/docs/next/api/geoprocessing/interfaces/NullSketchCollection/index.html +++ b/docs/next/api/geoprocessing/interfaces/NullSketchCollection/index.html @@ -4,7 +4,7 @@ NullSketchCollection | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/OverlapRasterOptions/index.html b/docs/next/api/geoprocessing/interfaces/OverlapRasterOptions/index.html index fc04c5fd2..8c4cf0777 100644 --- a/docs/next/api/geoprocessing/interfaces/OverlapRasterOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/OverlapRasterOptions/index.html @@ -4,7 +4,7 @@ OverlapRasterOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/PercentEdgeOptions/index.html b/docs/next/api/geoprocessing/interfaces/PercentEdgeOptions/index.html index 5139794fd..d6af27817 100644 --- a/docs/next/api/geoprocessing/interfaces/PercentEdgeOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/PercentEdgeOptions/index.html @@ -4,7 +4,7 @@ PercentEdgeOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Point/index.html b/docs/next/api/geoprocessing/interfaces/Point/index.html index f0bd5be99..bde2b3d06 100644 --- a/docs/next/api/geoprocessing/interfaces/Point/index.html +++ b/docs/next/api/geoprocessing/interfaces/Point/index.html @@ -4,7 +4,7 @@ Point | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Polygon/index.html b/docs/next/api/geoprocessing/interfaces/Polygon/index.html index 5420494f9..0f23bb4d4 100644 --- a/docs/next/api/geoprocessing/interfaces/Polygon/index.html +++ b/docs/next/api/geoprocessing/interfaces/Polygon/index.html @@ -4,7 +4,7 @@ Polygon | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/PreprocessingHandlerOptions/index.html b/docs/next/api/geoprocessing/interfaces/PreprocessingHandlerOptions/index.html index a09700dd7..1562aa9c3 100644 --- a/docs/next/api/geoprocessing/interfaces/PreprocessingHandlerOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/PreprocessingHandlerOptions/index.html @@ -4,7 +4,7 @@ PreprocessingHandlerOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/PreprocessingRequest/index.html b/docs/next/api/geoprocessing/interfaces/PreprocessingRequest/index.html index 5f940d9d9..854d93fc9 100644 --- a/docs/next/api/geoprocessing/interfaces/PreprocessingRequest/index.html +++ b/docs/next/api/geoprocessing/interfaces/PreprocessingRequest/index.html @@ -4,7 +4,7 @@ PreprocessingRequest | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/PreprocessingResponse/index.html b/docs/next/api/geoprocessing/interfaces/PreprocessingResponse/index.html index 8e043013f..4e95acf1d 100644 --- a/docs/next/api/geoprocessing/interfaces/PreprocessingResponse/index.html +++ b/docs/next/api/geoprocessing/interfaces/PreprocessingResponse/index.html @@ -4,7 +4,7 @@ PreprocessingResponse\<ResponseType\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/PreprocessingService/index.html b/docs/next/api/geoprocessing/interfaces/PreprocessingService/index.html index bbb2e04eb..6a8b68142 100644 --- a/docs/next/api/geoprocessing/interfaces/PreprocessingService/index.html +++ b/docs/next/api/geoprocessing/interfaces/PreprocessingService/index.html @@ -4,7 +4,7 @@ PreprocessingService | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/PreprocessingServiceMetadata/index.html b/docs/next/api/geoprocessing/interfaces/PreprocessingServiceMetadata/index.html index 079af89ba..69287b79a 100644 --- a/docs/next/api/geoprocessing/interfaces/PreprocessingServiceMetadata/index.html +++ b/docs/next/api/geoprocessing/interfaces/PreprocessingServiceMetadata/index.html @@ -4,7 +4,7 @@ PreprocessingServiceMetadata | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/ProjectClientConfig/index.html b/docs/next/api/geoprocessing/interfaces/ProjectClientConfig/index.html index a5bea61c2..8b7d3e091 100644 --- a/docs/next/api/geoprocessing/interfaces/ProjectClientConfig/index.html +++ b/docs/next/api/geoprocessing/interfaces/ProjectClientConfig/index.html @@ -4,7 +4,7 @@ ProjectClientConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/ProjectClientInterface/index.html b/docs/next/api/geoprocessing/interfaces/ProjectClientInterface/index.html index 6d84edc3f..c6f09d864 100644 --- a/docs/next/api/geoprocessing/interfaces/ProjectClientInterface/index.html +++ b/docs/next/api/geoprocessing/interfaces/ProjectClientInterface/index.html @@ -4,7 +4,7 @@ ProjectClientInterface | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/RasterStatsOptions/index.html b/docs/next/api/geoprocessing/interfaces/RasterStatsOptions/index.html index 9206fb4b8..cabee35b3 100644 --- a/docs/next/api/geoprocessing/interfaces/RasterStatsOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/RasterStatsOptions/index.html @@ -4,7 +4,7 @@ RasterStatsOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/RbcsObjective/index.html b/docs/next/api/geoprocessing/interfaces/RbcsObjective/index.html index ed2b08502..2e8c427b1 100644 --- a/docs/next/api/geoprocessing/interfaces/RbcsObjective/index.html +++ b/docs/next/api/geoprocessing/interfaces/RbcsObjective/index.html @@ -4,7 +4,7 @@ RbcsObjective | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/RegBasedClassificationMetric/index.html b/docs/next/api/geoprocessing/interfaces/RegBasedClassificationMetric/index.html index 8d17a23bd..d16f10e44 100644 --- a/docs/next/api/geoprocessing/interfaces/RegBasedClassificationMetric/index.html +++ b/docs/next/api/geoprocessing/interfaces/RegBasedClassificationMetric/index.html @@ -4,7 +4,7 @@ RegBasedClassificationMetric | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Report/index.html b/docs/next/api/geoprocessing/interfaces/Report/index.html index 76ec73f8e..dd6fe77ea 100644 --- a/docs/next/api/geoprocessing/interfaces/Report/index.html +++ b/docs/next/api/geoprocessing/interfaces/Report/index.html @@ -4,7 +4,7 @@ Report | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/ReportContextValue/index.html b/docs/next/api/geoprocessing/interfaces/ReportContextValue/index.html index 6a9887be5..bda7b2d99 100644 --- a/docs/next/api/geoprocessing/interfaces/ReportContextValue/index.html +++ b/docs/next/api/geoprocessing/interfaces/ReportContextValue/index.html @@ -4,7 +4,7 @@ ReportContextValue | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/ReportResult/index.html b/docs/next/api/geoprocessing/interfaces/ReportResult/index.html index efb7fc359..02bb8affc 100644 --- a/docs/next/api/geoprocessing/interfaces/ReportResult/index.html +++ b/docs/next/api/geoprocessing/interfaces/ReportResult/index.html @@ -4,7 +4,7 @@ ReportResult | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/ReportResultBase/index.html b/docs/next/api/geoprocessing/interfaces/ReportResultBase/index.html index 6b2d7c5c1..d1032edd5 100644 --- a/docs/next/api/geoprocessing/interfaces/ReportResultBase/index.html +++ b/docs/next/api/geoprocessing/interfaces/ReportResultBase/index.html @@ -4,7 +4,7 @@ ReportResultBase | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/RootTaskItem/index.html b/docs/next/api/geoprocessing/interfaces/RootTaskItem/index.html index 2efd7cbdb..4334cd976 100644 --- a/docs/next/api/geoprocessing/interfaces/RootTaskItem/index.html +++ b/docs/next/api/geoprocessing/interfaces/RootTaskItem/index.html @@ -4,7 +4,7 @@ RootTaskItem\<ResultType\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingMessageEvent/index.html b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingMessageEvent/index.html index 7c29126f8..798ab9f3f 100644 --- a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingMessageEvent/index.html +++ b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingMessageEvent/index.html @@ -4,7 +4,7 @@ SeaSketchReportingMessageEvent | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLanguageEvent/index.html b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLanguageEvent/index.html index 1258b7a77..f3837bc3c 100644 --- a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLanguageEvent/index.html +++ b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLanguageEvent/index.html @@ -4,7 +4,7 @@ SeaSketchReportingToggleLanguageEvent | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLayerVisibilityEvent/index.html b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLayerVisibilityEvent/index.html index 22a7f74b3..1a0f70a06 100644 --- a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLayerVisibilityEvent/index.html +++ b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingToggleLayerVisibilityEvent/index.html @@ -4,7 +4,7 @@ SeaSketchReportingToggleLayerVisibilityEvent | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingVisibleLayersChangeEvent/index.html b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingVisibleLayersChangeEvent/index.html index 9f80a4a61..013a10267 100644 --- a/docs/next/api/geoprocessing/interfaces/SeaSketchReportingVisibleLayersChangeEvent/index.html +++ b/docs/next/api/geoprocessing/interfaces/SeaSketchReportingVisibleLayersChangeEvent/index.html @@ -4,7 +4,7 @@ SeaSketchReportingVisibleLayersChangeEvent | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/Sketch/index.html b/docs/next/api/geoprocessing/interfaces/Sketch/index.html index 3c96ed3ce..f5939ea02 100644 --- a/docs/next/api/geoprocessing/interfaces/Sketch/index.html +++ b/docs/next/api/geoprocessing/interfaces/Sketch/index.html @@ -4,7 +4,7 @@ Sketch\<G\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/SketchCollection/index.html b/docs/next/api/geoprocessing/interfaces/SketchCollection/index.html index 769b27ca3..1f0c5ace8 100644 --- a/docs/next/api/geoprocessing/interfaces/SketchCollection/index.html +++ b/docs/next/api/geoprocessing/interfaces/SketchCollection/index.html @@ -4,7 +4,7 @@ SketchCollection\<G\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/SketchMap/index.html b/docs/next/api/geoprocessing/interfaces/SketchMap/index.html index 35a00b0cd..b7125578b 100644 --- a/docs/next/api/geoprocessing/interfaces/SketchMap/index.html +++ b/docs/next/api/geoprocessing/interfaces/SketchMap/index.html @@ -4,7 +4,7 @@ SketchMap | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/StatsObject/index.html b/docs/next/api/geoprocessing/interfaces/StatsObject/index.html index 422de4226..b968a4b0d 100644 --- a/docs/next/api/geoprocessing/interfaces/StatsObject/index.html +++ b/docs/next/api/geoprocessing/interfaces/StatsObject/index.html @@ -4,7 +4,7 @@ StatsObject | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/TestExampleOutput/index.html b/docs/next/api/geoprocessing/interfaces/TestExampleOutput/index.html index f3c9590ef..d294399af 100644 --- a/docs/next/api/geoprocessing/interfaces/TestExampleOutput/index.html +++ b/docs/next/api/geoprocessing/interfaces/TestExampleOutput/index.html @@ -4,7 +4,7 @@ TestExampleOutput | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/VectorDataSourceDetails/index.html b/docs/next/api/geoprocessing/interfaces/VectorDataSourceDetails/index.html index cec5c6a17..d208e7df3 100644 --- a/docs/next/api/geoprocessing/interfaces/VectorDataSourceDetails/index.html +++ b/docs/next/api/geoprocessing/interfaces/VectorDataSourceDetails/index.html @@ -4,7 +4,7 @@ VectorDataSourceDetails | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/VectorDataSourceOptions/index.html b/docs/next/api/geoprocessing/interfaces/VectorDataSourceOptions/index.html index fb88d4ecd..a4032d3ee 100644 --- a/docs/next/api/geoprocessing/interfaces/VectorDataSourceOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/VectorDataSourceOptions/index.html @@ -4,7 +4,7 @@ VectorDataSourceOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/VectorFeature/index.html b/docs/next/api/geoprocessing/interfaces/VectorFeature/index.html index 4e0202790..34e813928 100644 --- a/docs/next/api/geoprocessing/interfaces/VectorFeature/index.html +++ b/docs/next/api/geoprocessing/interfaces/VectorFeature/index.html @@ -4,7 +4,7 @@ VectorFeature | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/VectorPropertyFilter/index.html b/docs/next/api/geoprocessing/interfaces/VectorPropertyFilter/index.html index ba30e5309..8311bf919 100644 --- a/docs/next/api/geoprocessing/interfaces/VectorPropertyFilter/index.html +++ b/docs/next/api/geoprocessing/interfaces/VectorPropertyFilter/index.html @@ -4,7 +4,7 @@ VectorPropertyFilter | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/interfaces/WindowOptions/index.html b/docs/next/api/geoprocessing/interfaces/WindowOptions/index.html index a712b62f3..e540eb397 100644 --- a/docs/next/api/geoprocessing/interfaces/WindowOptions/index.html +++ b/docs/next/api/geoprocessing/interfaces/WindowOptions/index.html @@ -4,7 +4,7 @@ WindowOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/BBox/index.html b/docs/next/api/geoprocessing/type-aliases/BBox/index.html index 84b608978..d3131da11 100644 --- a/docs/next/api/geoprocessing/type-aliases/BBox/index.html +++ b/docs/next/api/geoprocessing/type-aliases/BBox/index.html @@ -4,7 +4,7 @@ BBox | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/BaseDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/BaseDatasource/index.html index 3aaa0038a..ea0704d59 100644 --- a/docs/next/api/geoprocessing/type-aliases/BaseDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/BaseDatasource/index.html @@ -4,7 +4,7 @@ BaseDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ClassStats/index.html b/docs/next/api/geoprocessing/type-aliases/ClassStats/index.html index ad359a4f1..c94c3bb4c 100644 --- a/docs/next/api/geoprocessing/type-aliases/ClassStats/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ClassStats/index.html @@ -4,7 +4,7 @@ ClassStats | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ClassificationId/index.html b/docs/next/api/geoprocessing/type-aliases/ClassificationId/index.html index 247293ef4..e0a52f2d2 100644 --- a/docs/next/api/geoprocessing/type-aliases/ClassificationId/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ClassificationId/index.html @@ -4,7 +4,7 @@ ClassificationId | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ClientJsonConfig/index.html b/docs/next/api/geoprocessing/type-aliases/ClientJsonConfig/index.html index 874ce7df7..15ce297c7 100644 --- a/docs/next/api/geoprocessing/type-aliases/ClientJsonConfig/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ClientJsonConfig/index.html @@ -4,7 +4,7 @@ ClientJsonConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ClipOperations/index.html b/docs/next/api/geoprocessing/type-aliases/ClipOperations/index.html index 9e0159796..bfaac74cc 100644 --- a/docs/next/api/geoprocessing/type-aliases/ClipOperations/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ClipOperations/index.html @@ -4,7 +4,7 @@ ClipOperations | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/DataClass/index.html b/docs/next/api/geoprocessing/type-aliases/DataClass/index.html index 9c74c05f8..2b5c32cf7 100644 --- a/docs/next/api/geoprocessing/type-aliases/DataClass/index.html +++ b/docs/next/api/geoprocessing/type-aliases/DataClass/index.html @@ -4,7 +4,7 @@ DataClass | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Datasource/index.html b/docs/next/api/geoprocessing/type-aliases/Datasource/index.html index 447304770..b9574e1e9 100644 --- a/docs/next/api/geoprocessing/type-aliases/Datasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Datasource/index.html @@ -4,7 +4,7 @@ Datasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/EXTRA_RASTER_STAT/index.html b/docs/next/api/geoprocessing/type-aliases/EXTRA_RASTER_STAT/index.html index 0e28d1d96..da07bf73e 100644 --- a/docs/next/api/geoprocessing/type-aliases/EXTRA_RASTER_STAT/index.html +++ b/docs/next/api/geoprocessing/type-aliases/EXTRA_RASTER_STAT/index.html @@ -4,7 +4,7 @@ EXTRA\_RASTER\_STAT | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/EezLandUnion/index.html b/docs/next/api/geoprocessing/type-aliases/EezLandUnion/index.html index eee80cb99..1f5737a99 100644 --- a/docs/next/api/geoprocessing/type-aliases/EezLandUnion/index.html +++ b/docs/next/api/geoprocessing/type-aliases/EezLandUnion/index.html @@ -4,7 +4,7 @@ EezLandUnion | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ExecutionMode/index.html b/docs/next/api/geoprocessing/type-aliases/ExecutionMode/index.html index 50fd70092..18e074e4c 100644 --- a/docs/next/api/geoprocessing/type-aliases/ExecutionMode/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ExecutionMode/index.html @@ -4,7 +4,7 @@ ExecutionMode | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ExternalRasterDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/ExternalRasterDatasource/index.html index d1262be93..f5295a0b8 100644 --- a/docs/next/api/geoprocessing/type-aliases/ExternalRasterDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ExternalRasterDatasource/index.html @@ -4,7 +4,7 @@ ExternalRasterDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ExternalVectorDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/ExternalVectorDatasource/index.html index d465b8cf4..c4ecfd959 100644 --- a/docs/next/api/geoprocessing/type-aliases/ExternalVectorDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ExternalVectorDatasource/index.html @@ -4,7 +4,7 @@ ExternalVectorDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/FunctionExtraParams/index.html b/docs/next/api/geoprocessing/type-aliases/FunctionExtraParams/index.html index 721ff29f7..1c61e0eb9 100644 --- a/docs/next/api/geoprocessing/type-aliases/FunctionExtraParams/index.html +++ b/docs/next/api/geoprocessing/type-aliases/FunctionExtraParams/index.html @@ -4,7 +4,7 @@ FunctionExtraParams | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GEOBLAZE_RASTER_STAT/index.html b/docs/next/api/geoprocessing/type-aliases/GEOBLAZE_RASTER_STAT/index.html index 43708e28b..c38c2c530 100644 --- a/docs/next/api/geoprocessing/type-aliases/GEOBLAZE_RASTER_STAT/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GEOBLAZE_RASTER_STAT/index.html @@ -4,7 +4,7 @@ GEOBLAZE\_RASTER\_STAT | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GeoJsonProperties/index.html b/docs/next/api/geoprocessing/type-aliases/GeoJsonProperties/index.html index ddeb8c810..8290959ee 100644 --- a/docs/next/api/geoprocessing/type-aliases/GeoJsonProperties/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GeoJsonProperties/index.html @@ -4,7 +4,7 @@ GeoJsonProperties | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GeoTypes/index.html b/docs/next/api/geoprocessing/type-aliases/GeoTypes/index.html index 9722ab00b..2ffef1c76 100644 --- a/docs/next/api/geoprocessing/type-aliases/GeoTypes/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GeoTypes/index.html @@ -4,7 +4,7 @@ GeoTypes | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Geographies/index.html b/docs/next/api/geoprocessing/type-aliases/Geographies/index.html index 54938b7b7..89fcbf041 100644 --- a/docs/next/api/geoprocessing/type-aliases/Geographies/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Geographies/index.html @@ -4,7 +4,7 @@ Geographies | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Geography/index.html b/docs/next/api/geoprocessing/type-aliases/Geography/index.html index 10b43dbb0..d6690580a 100644 --- a/docs/next/api/geoprocessing/type-aliases/Geography/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Geography/index.html @@ -4,7 +4,7 @@ Geography | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Geometry/index.html b/docs/next/api/geoprocessing/type-aliases/Geometry/index.html index aa5a74346..f3754a0f9 100644 --- a/docs/next/api/geoprocessing/type-aliases/Geometry/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Geometry/index.html @@ -4,7 +4,7 @@ Geometry | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GeoprocessingJsonConfig/index.html b/docs/next/api/geoprocessing/type-aliases/GeoprocessingJsonConfig/index.html index e4a84f527..e4a3f3a99 100644 --- a/docs/next/api/geoprocessing/type-aliases/GeoprocessingJsonConfig/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GeoprocessingJsonConfig/index.html @@ -4,7 +4,7 @@ GeoprocessingJsonConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequest/index.html b/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequest/index.html index edc807dce..8f111399d 100644 --- a/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequest/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequest/index.html @@ -4,7 +4,7 @@ GeoprocessingRequest\<G\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequestParams/index.html b/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequestParams/index.html index a07be9d10..baf0a2ff7 100644 --- a/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequestParams/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GeoprocessingRequestParams/index.html @@ -4,7 +4,7 @@ GeoprocessingRequestParams | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GeorasterMetadata/index.html b/docs/next/api/geoprocessing/type-aliases/GeorasterMetadata/index.html index a22f31a5e..ff2e4925a 100644 --- a/docs/next/api/geoprocessing/type-aliases/GeorasterMetadata/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GeorasterMetadata/index.html @@ -4,7 +4,7 @@ GeorasterMetadata | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GroupMetricAgg/index.html b/docs/next/api/geoprocessing/type-aliases/GroupMetricAgg/index.html index 748964108..27690f54d 100644 --- a/docs/next/api/geoprocessing/type-aliases/GroupMetricAgg/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GroupMetricAgg/index.html @@ -4,7 +4,7 @@ GroupMetricAgg | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/GroupMetricSketchAgg/index.html b/docs/next/api/geoprocessing/type-aliases/GroupMetricSketchAgg/index.html index 469b099e8..cef86490f 100644 --- a/docs/next/api/geoprocessing/type-aliases/GroupMetricSketchAgg/index.html +++ b/docs/next/api/geoprocessing/type-aliases/GroupMetricSketchAgg/index.html @@ -4,7 +4,7 @@ GroupMetricSketchAgg | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ISO8601DateTime/index.html b/docs/next/api/geoprocessing/type-aliases/ISO8601DateTime/index.html index a82447583..1e1cffe45 100644 --- a/docs/next/api/geoprocessing/type-aliases/ISO8601DateTime/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ISO8601DateTime/index.html @@ -4,7 +4,7 @@ ISO8601DateTime | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ISO8601Duration/index.html b/docs/next/api/geoprocessing/type-aliases/ISO8601Duration/index.html index cf91ca324..97b3b5ede 100644 --- a/docs/next/api/geoprocessing/type-aliases/ISO8601Duration/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ISO8601Duration/index.html @@ -4,7 +4,7 @@ ISO8601Duration | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceConfig/index.html b/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceConfig/index.html index e06b0352b..9bd5ffa5c 100644 --- a/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceConfig/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceConfig/index.html @@ -4,7 +4,7 @@ ImportRasterDatasourceConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceOptions/index.html b/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceOptions/index.html index 025848105..6e40dd2eb 100644 --- a/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceOptions/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ImportRasterDatasourceOptions/index.html @@ -4,7 +4,7 @@ ImportRasterDatasourceOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceConfig/index.html b/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceConfig/index.html index 4d744dab5..6b9d7840e 100644 --- a/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceConfig/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceConfig/index.html @@ -4,7 +4,7 @@ ImportVectorDatasourceConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceOptions/index.html b/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceOptions/index.html index b48d143e6..ccf724371 100644 --- a/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceOptions/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ImportVectorDatasourceOptions/index.html @@ -4,7 +4,7 @@ ImportVectorDatasourceOptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/InternalRasterDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/InternalRasterDatasource/index.html index c90291ae4..546dd4806 100644 --- a/docs/next/api/geoprocessing/type-aliases/InternalRasterDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/InternalRasterDatasource/index.html @@ -4,7 +4,7 @@ InternalRasterDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/InternalVectorDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/InternalVectorDatasource/index.html index e30d204de..1f0ae8c76 100644 --- a/docs/next/api/geoprocessing/type-aliases/InternalVectorDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/InternalVectorDatasource/index.html @@ -4,7 +4,7 @@ InternalVectorDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/IucnActivityRankId/index.html b/docs/next/api/geoprocessing/type-aliases/IucnActivityRankId/index.html index d67abec48..0588799bf 100644 --- a/docs/next/api/geoprocessing/type-aliases/IucnActivityRankId/index.html +++ b/docs/next/api/geoprocessing/type-aliases/IucnActivityRankId/index.html @@ -4,7 +4,7 @@ IucnActivityRankId | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/JSONValue/index.html b/docs/next/api/geoprocessing/type-aliases/JSONValue/index.html index 3058c1fba..3cc29f36d 100644 --- a/docs/next/api/geoprocessing/type-aliases/JSONValue/index.html +++ b/docs/next/api/geoprocessing/type-aliases/JSONValue/index.html @@ -4,7 +4,7 @@ JSONValue | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/LoadedPackage/index.html b/docs/next/api/geoprocessing/type-aliases/LoadedPackage/index.html index 929050df0..5d8c9a720 100644 --- a/docs/next/api/geoprocessing/type-aliases/LoadedPackage/index.html +++ b/docs/next/api/geoprocessing/type-aliases/LoadedPackage/index.html @@ -4,7 +4,7 @@ LoadedPackage | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Metric/index.html b/docs/next/api/geoprocessing/type-aliases/Metric/index.html index cf89cde8b..6d32ddfe7 100644 --- a/docs/next/api/geoprocessing/type-aliases/Metric/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Metric/index.html @@ -4,7 +4,7 @@ Metric | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/MetricDimension/index.html b/docs/next/api/geoprocessing/type-aliases/MetricDimension/index.html index b0fb4887a..6cf329ab9 100644 --- a/docs/next/api/geoprocessing/type-aliases/MetricDimension/index.html +++ b/docs/next/api/geoprocessing/type-aliases/MetricDimension/index.html @@ -4,7 +4,7 @@ MetricDimension | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/MetricGroup/index.html b/docs/next/api/geoprocessing/type-aliases/MetricGroup/index.html index 694b9bc12..8fa599405 100644 --- a/docs/next/api/geoprocessing/type-aliases/MetricGroup/index.html +++ b/docs/next/api/geoprocessing/type-aliases/MetricGroup/index.html @@ -4,7 +4,7 @@ MetricGroup | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/MetricGroups/index.html b/docs/next/api/geoprocessing/type-aliases/MetricGroups/index.html index df893a9eb..2a963b63b 100644 --- a/docs/next/api/geoprocessing/type-aliases/MetricGroups/index.html +++ b/docs/next/api/geoprocessing/type-aliases/MetricGroups/index.html @@ -4,7 +4,7 @@ MetricGroups | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/MetricIdTypes/index.html b/docs/next/api/geoprocessing/type-aliases/MetricIdTypes/index.html index 5274a7e3f..49e400e4c 100644 --- a/docs/next/api/geoprocessing/type-aliases/MetricIdTypes/index.html +++ b/docs/next/api/geoprocessing/type-aliases/MetricIdTypes/index.html @@ -4,7 +4,7 @@ MetricIdTypes | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/MetricProperty/index.html b/docs/next/api/geoprocessing/type-aliases/MetricProperty/index.html index c8dcff89e..4830e6cb0 100644 --- a/docs/next/api/geoprocessing/type-aliases/MetricProperty/index.html +++ b/docs/next/api/geoprocessing/type-aliases/MetricProperty/index.html @@ -4,7 +4,7 @@ MetricProperty | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Metrics/index.html b/docs/next/api/geoprocessing/type-aliases/Metrics/index.html index 026d52910..2600b2881 100644 --- a/docs/next/api/geoprocessing/type-aliases/Metrics/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Metrics/index.html @@ -4,7 +4,7 @@ Metrics | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/MpaClassification/index.html b/docs/next/api/geoprocessing/type-aliases/MpaClassification/index.html index 3a986a10d..7c6b9ddab 100644 --- a/docs/next/api/geoprocessing/type-aliases/MpaClassification/index.html +++ b/docs/next/api/geoprocessing/type-aliases/MpaClassification/index.html @@ -4,7 +4,7 @@ MpaClassification | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Nullable/index.html b/docs/next/api/geoprocessing/type-aliases/Nullable/index.html index f3b711689..bd9909101 100644 --- a/docs/next/api/geoprocessing/type-aliases/Nullable/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Nullable/index.html @@ -4,7 +4,7 @@ Nullable\<T\> | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Objective/index.html b/docs/next/api/geoprocessing/type-aliases/Objective/index.html index a939673e9..206ece467 100644 --- a/docs/next/api/geoprocessing/type-aliases/Objective/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Objective/index.html @@ -4,7 +4,7 @@ Objective | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswer/index.html b/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswer/index.html index 1742ef4b6..a6b50ec4e 100644 --- a/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswer/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswer/index.html @@ -4,7 +4,7 @@ ObjectiveAnswer | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswerMap/index.html b/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswerMap/index.html index 6f3b4cfe4..dd7ceca7e 100644 --- a/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswerMap/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ObjectiveAnswerMap/index.html @@ -4,7 +4,7 @@ ObjectiveAnswerMap | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ObjectiveId/index.html b/docs/next/api/geoprocessing/type-aliases/ObjectiveId/index.html index 7a6ff4595..3dbd3cfad 100644 --- a/docs/next/api/geoprocessing/type-aliases/ObjectiveId/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ObjectiveId/index.html @@ -4,7 +4,7 @@ ObjectiveId | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Objectives/index.html b/docs/next/api/geoprocessing/type-aliases/Objectives/index.html index afe80037d..1db76b12a 100644 --- a/docs/next/api/geoprocessing/type-aliases/Objectives/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Objectives/index.html @@ -4,7 +4,7 @@ Objectives | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/OsmLandFeature/index.html b/docs/next/api/geoprocessing/type-aliases/OsmLandFeature/index.html index 73575316e..c4aa9b1a1 100644 --- a/docs/next/api/geoprocessing/type-aliases/OsmLandFeature/index.html +++ b/docs/next/api/geoprocessing/type-aliases/OsmLandFeature/index.html @@ -4,7 +4,7 @@ OsmLandFeature | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Package/index.html b/docs/next/api/geoprocessing/type-aliases/Package/index.html index 2f9787412..2d3670280 100644 --- a/docs/next/api/geoprocessing/type-aliases/Package/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Package/index.html @@ -4,7 +4,7 @@ Package | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/PartialReportContextValue/index.html b/docs/next/api/geoprocessing/type-aliases/PartialReportContextValue/index.html index d179f7f1d..51300cc00 100644 --- a/docs/next/api/geoprocessing/type-aliases/PartialReportContextValue/index.html +++ b/docs/next/api/geoprocessing/type-aliases/PartialReportContextValue/index.html @@ -4,7 +4,7 @@ PartialReportContextValue | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Position/index.html b/docs/next/api/geoprocessing/type-aliases/Position/index.html index defc144e7..1c6963230 100644 --- a/docs/next/api/geoprocessing/type-aliases/Position/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Position/index.html @@ -4,7 +4,7 @@ Position | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Project/index.html b/docs/next/api/geoprocessing/type-aliases/Project/index.html index d5ca098a8..1fa9fc66e 100644 --- a/docs/next/api/geoprocessing/type-aliases/Project/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Project/index.html @@ -4,7 +4,7 @@ Project | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/RasterDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/RasterDatasource/index.html index f2b561aa6..a57651cd0 100644 --- a/docs/next/api/geoprocessing/type-aliases/RasterDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/RasterDatasource/index.html @@ -4,7 +4,7 @@ RasterDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/RbcsMpaObjectiveAnswerMap/index.html b/docs/next/api/geoprocessing/type-aliases/RbcsMpaObjectiveAnswerMap/index.html index b52eecedb..882e33587 100644 --- a/docs/next/api/geoprocessing/type-aliases/RbcsMpaObjectiveAnswerMap/index.html +++ b/docs/next/api/geoprocessing/type-aliases/RbcsMpaObjectiveAnswerMap/index.html @@ -4,7 +4,7 @@ RbcsMpaObjectiveAnswerMap | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/RbcsMpaProtectionLevel/index.html b/docs/next/api/geoprocessing/type-aliases/RbcsMpaProtectionLevel/index.html index 7ac05f0ab..3efb23e2b 100644 --- a/docs/next/api/geoprocessing/type-aliases/RbcsMpaProtectionLevel/index.html +++ b/docs/next/api/geoprocessing/type-aliases/RbcsMpaProtectionLevel/index.html @@ -4,7 +4,7 @@ RbcsMpaProtectionLevel | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/SUPPORTED_RASTER_STAT/index.html b/docs/next/api/geoprocessing/type-aliases/SUPPORTED_RASTER_STAT/index.html index 09cfead51..be4197dea 100644 --- a/docs/next/api/geoprocessing/type-aliases/SUPPORTED_RASTER_STAT/index.html +++ b/docs/next/api/geoprocessing/type-aliases/SUPPORTED_RASTER_STAT/index.html @@ -4,7 +4,7 @@ SUPPORTED\_RASTER\_STAT | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/SketchGeometryTypes/index.html b/docs/next/api/geoprocessing/type-aliases/SketchGeometryTypes/index.html index b05b4c231..17c470458 100644 --- a/docs/next/api/geoprocessing/type-aliases/SketchGeometryTypes/index.html +++ b/docs/next/api/geoprocessing/type-aliases/SketchGeometryTypes/index.html @@ -4,7 +4,7 @@ SketchGeometryTypes | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/SketchProperties/index.html b/docs/next/api/geoprocessing/type-aliases/SketchProperties/index.html index ccc145935..467ff11c6 100644 --- a/docs/next/api/geoprocessing/type-aliases/SketchProperties/index.html +++ b/docs/next/api/geoprocessing/type-aliases/SketchProperties/index.html @@ -4,7 +4,7 @@ SketchProperties | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Stats-1/index.html b/docs/next/api/geoprocessing/type-aliases/Stats-1/index.html index a615c3bbb..5f61dbf1d 100644 --- a/docs/next/api/geoprocessing/type-aliases/Stats-1/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Stats-1/index.html @@ -4,7 +4,7 @@ Stats | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/SupportedFormats/index.html b/docs/next/api/geoprocessing/type-aliases/SupportedFormats/index.html index ddd8d61ba..4da6b8ff3 100644 --- a/docs/next/api/geoprocessing/type-aliases/SupportedFormats/index.html +++ b/docs/next/api/geoprocessing/type-aliases/SupportedFormats/index.html @@ -4,7 +4,7 @@ SupportedFormats | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/TaskKey/index.html b/docs/next/api/geoprocessing/type-aliases/TaskKey/index.html index e21dcf006..68caefc96 100644 --- a/docs/next/api/geoprocessing/type-aliases/TaskKey/index.html +++ b/docs/next/api/geoprocessing/type-aliases/TaskKey/index.html @@ -4,7 +4,7 @@ TaskKey | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/TypedArray/index.html b/docs/next/api/geoprocessing/type-aliases/TypedArray/index.html index 576a4c63a..e11bcf058 100644 --- a/docs/next/api/geoprocessing/type-aliases/TypedArray/index.html +++ b/docs/next/api/geoprocessing/type-aliases/TypedArray/index.html @@ -4,7 +4,7 @@ TypedArray | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/UserAttribute/index.html b/docs/next/api/geoprocessing/type-aliases/UserAttribute/index.html index a61ebe78f..1d1428ab8 100644 --- a/docs/next/api/geoprocessing/type-aliases/UserAttribute/index.html +++ b/docs/next/api/geoprocessing/type-aliases/UserAttribute/index.html @@ -4,7 +4,7 @@ UserAttribute | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ValueFormatter/index.html b/docs/next/api/geoprocessing/type-aliases/ValueFormatter/index.html index 3feba685d..2ae45b53d 100644 --- a/docs/next/api/geoprocessing/type-aliases/ValueFormatter/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ValueFormatter/index.html @@ -4,7 +4,7 @@ ValueFormatter | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/VectorDatasource/index.html b/docs/next/api/geoprocessing/type-aliases/VectorDatasource/index.html index eb5d2e030..743b35d7c 100644 --- a/docs/next/api/geoprocessing/type-aliases/VectorDatasource/index.html +++ b/docs/next/api/geoprocessing/type-aliases/VectorDatasource/index.html @@ -4,7 +4,7 @@ VectorDatasource | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/Zone/index.html b/docs/next/api/geoprocessing/type-aliases/Zone/index.html index 52be70ecc..64cdf5223 100644 --- a/docs/next/api/geoprocessing/type-aliases/Zone/index.html +++ b/docs/next/api/geoprocessing/type-aliases/Zone/index.html @@ -4,7 +4,7 @@ Zone | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ZoneColor/index.html b/docs/next/api/geoprocessing/type-aliases/ZoneColor/index.html index 480511830..7d9f1603a 100644 --- a/docs/next/api/geoprocessing/type-aliases/ZoneColor/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ZoneColor/index.html @@ -4,7 +4,7 @@ ZoneColor | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ZoneId/index.html b/docs/next/api/geoprocessing/type-aliases/ZoneId/index.html index 171a2b063..c9e71d8d0 100644 --- a/docs/next/api/geoprocessing/type-aliases/ZoneId/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ZoneId/index.html @@ -4,7 +4,7 @@ ZoneId | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/ZoneName/index.html b/docs/next/api/geoprocessing/type-aliases/ZoneName/index.html index edf8a7ca5..d4a7f2ada 100644 --- a/docs/next/api/geoprocessing/type-aliases/ZoneName/index.html +++ b/docs/next/api/geoprocessing/type-aliases/ZoneName/index.html @@ -4,7 +4,7 @@ ZoneName | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/bandArithmetic/index.html b/docs/next/api/geoprocessing/type-aliases/bandArithmetic/index.html index 4eb28047a..91689a291 100644 --- a/docs/next/api/geoprocessing/type-aliases/bandArithmetic/index.html +++ b/docs/next/api/geoprocessing/type-aliases/bandArithmetic/index.html @@ -4,7 +4,7 @@ bandArithmetic() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/get/index.html b/docs/next/api/geoprocessing/type-aliases/get/index.html index 76bdec983..4aa3a952a 100644 --- a/docs/next/api/geoprocessing/type-aliases/get/index.html +++ b/docs/next/api/geoprocessing/type-aliases/get/index.html @@ -4,7 +4,7 @@ get() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/histogram/index.html b/docs/next/api/geoprocessing/type-aliases/histogram/index.html index d65fc98f5..1ea43b1b1 100644 --- a/docs/next/api/geoprocessing/type-aliases/histogram/index.html +++ b/docs/next/api/geoprocessing/type-aliases/histogram/index.html @@ -4,7 +4,7 @@ histogram() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/identify/index.html b/docs/next/api/geoprocessing/type-aliases/identify/index.html index 5287ea9e4..512743e07 100644 --- a/docs/next/api/geoprocessing/type-aliases/identify/index.html +++ b/docs/next/api/geoprocessing/type-aliases/identify/index.html @@ -4,7 +4,7 @@ identify() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/load/index.html b/docs/next/api/geoprocessing/type-aliases/load/index.html index 346cea137..e39bb9ee4 100644 --- a/docs/next/api/geoprocessing/type-aliases/load/index.html +++ b/docs/next/api/geoprocessing/type-aliases/load/index.html @@ -4,7 +4,7 @@ load() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/max/index.html b/docs/next/api/geoprocessing/type-aliases/max/index.html index 688ffee4a..c1c02bb06 100644 --- a/docs/next/api/geoprocessing/type-aliases/max/index.html +++ b/docs/next/api/geoprocessing/type-aliases/max/index.html @@ -4,7 +4,7 @@ max() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/mean/index.html b/docs/next/api/geoprocessing/type-aliases/mean/index.html index 965b6d29f..50be42179 100644 --- a/docs/next/api/geoprocessing/type-aliases/mean/index.html +++ b/docs/next/api/geoprocessing/type-aliases/mean/index.html @@ -4,7 +4,7 @@ mean() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/median/index.html b/docs/next/api/geoprocessing/type-aliases/median/index.html index b3d39b29d..a5bbef7af 100644 --- a/docs/next/api/geoprocessing/type-aliases/median/index.html +++ b/docs/next/api/geoprocessing/type-aliases/median/index.html @@ -4,7 +4,7 @@ median() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/min/index.html b/docs/next/api/geoprocessing/type-aliases/min/index.html index 0d8563004..40d09b957 100644 --- a/docs/next/api/geoprocessing/type-aliases/min/index.html +++ b/docs/next/api/geoprocessing/type-aliases/min/index.html @@ -4,7 +4,7 @@ min() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/mode/index.html b/docs/next/api/geoprocessing/type-aliases/mode/index.html index d6bea5114..998e7fd75 100644 --- a/docs/next/api/geoprocessing/type-aliases/mode/index.html +++ b/docs/next/api/geoprocessing/type-aliases/mode/index.html @@ -4,7 +4,7 @@ mode() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/rasterCalculator/index.html b/docs/next/api/geoprocessing/type-aliases/rasterCalculator/index.html index 5bda95d3a..2da15931e 100644 --- a/docs/next/api/geoprocessing/type-aliases/rasterCalculator/index.html +++ b/docs/next/api/geoprocessing/type-aliases/rasterCalculator/index.html @@ -4,7 +4,7 @@ rasterCalculator() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/stats/index.html b/docs/next/api/geoprocessing/type-aliases/stats/index.html index 06a6baf09..995d9b748 100644 --- a/docs/next/api/geoprocessing/type-aliases/stats/index.html +++ b/docs/next/api/geoprocessing/type-aliases/stats/index.html @@ -4,7 +4,7 @@ stats() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/type-aliases/sum/index.html b/docs/next/api/geoprocessing/type-aliases/sum/index.html index 982605c35..b51b1d548 100644 --- a/docs/next/api/geoprocessing/type-aliases/sum/index.html +++ b/docs/next/api/geoprocessing/type-aliases/sum/index.html @@ -4,7 +4,7 @@ sum() | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/DEFAULTS/index.html b/docs/next/api/geoprocessing/variables/DEFAULTS/index.html index fadc796bd..9467bcd56 100644 --- a/docs/next/api/geoprocessing/variables/DEFAULTS/index.html +++ b/docs/next/api/geoprocessing/variables/DEFAULTS/index.html @@ -4,7 +4,7 @@ DEFAULTS | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/EXTRA_RASTER_STATS/index.html b/docs/next/api/geoprocessing/variables/EXTRA_RASTER_STATS/index.html index 235fa098a..ad8d7f4b4 100644 --- a/docs/next/api/geoprocessing/variables/EXTRA_RASTER_STATS/index.html +++ b/docs/next/api/geoprocessing/variables/EXTRA_RASTER_STATS/index.html @@ -4,7 +4,7 @@ EXTRA\_RASTER\_STATS | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/FULLY_PROTECTED_LEVEL/index.html b/docs/next/api/geoprocessing/variables/FULLY_PROTECTED_LEVEL/index.html index 2f5457d5f..482b56c41 100644 --- a/docs/next/api/geoprocessing/variables/FULLY_PROTECTED_LEVEL/index.html +++ b/docs/next/api/geoprocessing/variables/FULLY_PROTECTED_LEVEL/index.html @@ -4,7 +4,7 @@ FULLY\_PROTECTED\_LEVEL | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/GEOBLAZE_RASTER_STATS/index.html b/docs/next/api/geoprocessing/variables/GEOBLAZE_RASTER_STATS/index.html index 32ac14ee6..b0a64bc72 100644 --- a/docs/next/api/geoprocessing/variables/GEOBLAZE_RASTER_STATS/index.html +++ b/docs/next/api/geoprocessing/variables/GEOBLAZE_RASTER_STATS/index.html @@ -4,7 +4,7 @@ GEOBLAZE\_RASTER\_STATS | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/HIGHLY_PROTECTED_LEVEL/index.html b/docs/next/api/geoprocessing/variables/HIGHLY_PROTECTED_LEVEL/index.html index 36a734b9c..65d9f5057 100644 --- a/docs/next/api/geoprocessing/variables/HIGHLY_PROTECTED_LEVEL/index.html +++ b/docs/next/api/geoprocessing/variables/HIGHLY_PROTECTED_LEVEL/index.html @@ -4,7 +4,7 @@ HIGHLY\_PROTECTED\_LEVEL | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/MODERATELY_PROTECTED_LEVEL/index.html b/docs/next/api/geoprocessing/variables/MODERATELY_PROTECTED_LEVEL/index.html index 80ec8e2d6..41c37f7ee 100644 --- a/docs/next/api/geoprocessing/variables/MODERATELY_PROTECTED_LEVEL/index.html +++ b/docs/next/api/geoprocessing/variables/MODERATELY_PROTECTED_LEVEL/index.html @@ -4,7 +4,7 @@ MODERATELY\_PROTECTED\_LEVEL | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/MetricDimensions/index.html b/docs/next/api/geoprocessing/variables/MetricDimensions/index.html index f23bead34..c259514dc 100644 --- a/docs/next/api/geoprocessing/variables/MetricDimensions/index.html +++ b/docs/next/api/geoprocessing/variables/MetricDimensions/index.html @@ -4,7 +4,7 @@ MetricDimensions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/MetricProperties/index.html b/docs/next/api/geoprocessing/variables/MetricProperties/index.html index a3240f875..a174f5145 100644 --- a/docs/next/api/geoprocessing/variables/MetricProperties/index.html +++ b/docs/next/api/geoprocessing/variables/MetricProperties/index.html @@ -4,7 +4,7 @@ MetricProperties | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/OBJECTIVE_GREEN/index.html b/docs/next/api/geoprocessing/variables/OBJECTIVE_GREEN/index.html index 7068c02b8..40fb89a4e 100644 --- a/docs/next/api/geoprocessing/variables/OBJECTIVE_GREEN/index.html +++ b/docs/next/api/geoprocessing/variables/OBJECTIVE_GREEN/index.html @@ -4,7 +4,7 @@ OBJECTIVE\_GREEN | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/OBJECTIVE_MAYBE/index.html b/docs/next/api/geoprocessing/variables/OBJECTIVE_MAYBE/index.html index b519675ef..247e515f4 100644 --- a/docs/next/api/geoprocessing/variables/OBJECTIVE_MAYBE/index.html +++ b/docs/next/api/geoprocessing/variables/OBJECTIVE_MAYBE/index.html @@ -4,7 +4,7 @@ OBJECTIVE\_MAYBE | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/OBJECTIVE_NO/index.html b/docs/next/api/geoprocessing/variables/OBJECTIVE_NO/index.html index 5059e1fb1..5d5ee1d4d 100644 --- a/docs/next/api/geoprocessing/variables/OBJECTIVE_NO/index.html +++ b/docs/next/api/geoprocessing/variables/OBJECTIVE_NO/index.html @@ -4,7 +4,7 @@ OBJECTIVE\_NO | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/OBJECTIVE_RED/index.html b/docs/next/api/geoprocessing/variables/OBJECTIVE_RED/index.html index 43a2668b5..6fef668cb 100644 --- a/docs/next/api/geoprocessing/variables/OBJECTIVE_RED/index.html +++ b/docs/next/api/geoprocessing/variables/OBJECTIVE_RED/index.html @@ -4,7 +4,7 @@ OBJECTIVE\_RED | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/OBJECTIVE_YELLOW/index.html b/docs/next/api/geoprocessing/variables/OBJECTIVE_YELLOW/index.html index 0e98e9220..bb6d2cbe4 100644 --- a/docs/next/api/geoprocessing/variables/OBJECTIVE_YELLOW/index.html +++ b/docs/next/api/geoprocessing/variables/OBJECTIVE_YELLOW/index.html @@ -4,7 +4,7 @@ OBJECTIVE\_YELLOW | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/OBJECTIVE_YES/index.html b/docs/next/api/geoprocessing/variables/OBJECTIVE_YES/index.html index e25cac58a..4266c358a 100644 --- a/docs/next/api/geoprocessing/variables/OBJECTIVE_YES/index.html +++ b/docs/next/api/geoprocessing/variables/OBJECTIVE_YES/index.html @@ -4,7 +4,7 @@ OBJECTIVE\_YES | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/PLANNING_AREA_TYPES/index.html b/docs/next/api/geoprocessing/variables/PLANNING_AREA_TYPES/index.html index 61c966650..240b7c1f0 100644 --- a/docs/next/api/geoprocessing/variables/PLANNING_AREA_TYPES/index.html +++ b/docs/next/api/geoprocessing/variables/PLANNING_AREA_TYPES/index.html @@ -4,7 +4,7 @@ PLANNING\_AREA\_TYPES | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/POORLY_PROTECTED_LEVEL/index.html b/docs/next/api/geoprocessing/variables/POORLY_PROTECTED_LEVEL/index.html index 9d5352397..2ab73a644 100644 --- a/docs/next/api/geoprocessing/variables/POORLY_PROTECTED_LEVEL/index.html +++ b/docs/next/api/geoprocessing/variables/POORLY_PROTECTED_LEVEL/index.html @@ -4,7 +4,7 @@ POORLY\_PROTECTED\_LEVEL | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/ReportContext/index.html b/docs/next/api/geoprocessing/variables/ReportContext/index.html index 8190c5110..dd3a88fbb 100644 --- a/docs/next/api/geoprocessing/variables/ReportContext/index.html +++ b/docs/next/api/geoprocessing/variables/ReportContext/index.html @@ -4,7 +4,7 @@ ReportContext | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/SUPPORTED_RASTER_STATS/index.html b/docs/next/api/geoprocessing/variables/SUPPORTED_RASTER_STATS/index.html index be07941bb..e8c330eb2 100644 --- a/docs/next/api/geoprocessing/variables/SUPPORTED_RASTER_STATS/index.html +++ b/docs/next/api/geoprocessing/variables/SUPPORTED_RASTER_STATS/index.html @@ -4,7 +4,7 @@ SUPPORTED\_RASTER\_STATS | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/UNPROTECTED_LEVEL/index.html b/docs/next/api/geoprocessing/variables/UNPROTECTED_LEVEL/index.html index 33ce5ef63..12cd93d0d 100644 --- a/docs/next/api/geoprocessing/variables/UNPROTECTED_LEVEL/index.html +++ b/docs/next/api/geoprocessing/variables/UNPROTECTED_LEVEL/index.html @@ -4,7 +4,7 @@ UNPROTECTED\_LEVEL | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/activityRanks/index.html b/docs/next/api/geoprocessing/variables/activityRanks/index.html index cb7111e35..237194031 100644 --- a/docs/next/api/geoprocessing/variables/activityRanks/index.html +++ b/docs/next/api/geoprocessing/variables/activityRanks/index.html @@ -4,7 +4,7 @@ activityRanks | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/baseDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/baseDatasourceSchema/index.html index b88b70adc..73ab071cc 100644 --- a/docs/next/api/geoprocessing/variables/baseDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/baseDatasourceSchema/index.html @@ -4,7 +4,7 @@ baseDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/bboxSchema/index.html b/docs/next/api/geoprocessing/variables/bboxSchema/index.html index 08b3ffc19..d29c49a56 100644 --- a/docs/next/api/geoprocessing/variables/bboxSchema/index.html +++ b/docs/next/api/geoprocessing/variables/bboxSchema/index.html @@ -4,7 +4,7 @@ bboxSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/box2dSchema/index.html b/docs/next/api/geoprocessing/variables/box2dSchema/index.html index 3ceef5806..c6b5d050a 100644 --- a/docs/next/api/geoprocessing/variables/box2dSchema/index.html +++ b/docs/next/api/geoprocessing/variables/box2dSchema/index.html @@ -4,7 +4,7 @@ box2dSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/box3dSchema/index.html b/docs/next/api/geoprocessing/variables/box3dSchema/index.html index d85991f5d..206f5d1be 100644 --- a/docs/next/api/geoprocessing/variables/box3dSchema/index.html +++ b/docs/next/api/geoprocessing/variables/box3dSchema/index.html @@ -4,7 +4,7 @@ box3dSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/classStatsSchema/index.html b/docs/next/api/geoprocessing/variables/classStatsSchema/index.html index c7b6da6ca..24bca2fd5 100644 --- a/docs/next/api/geoprocessing/variables/classStatsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/classStatsSchema/index.html @@ -4,7 +4,7 @@ classStatsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/clientJsonConfigSchema/index.html b/docs/next/api/geoprocessing/variables/clientJsonConfigSchema/index.html index 6119941d8..442184738 100644 --- a/docs/next/api/geoprocessing/variables/clientJsonConfigSchema/index.html +++ b/docs/next/api/geoprocessing/variables/clientJsonConfigSchema/index.html @@ -4,7 +4,7 @@ clientJsonConfigSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/commonHeaders/index.html b/docs/next/api/geoprocessing/variables/commonHeaders/index.html index 407d26a67..9efb7121f 100644 --- a/docs/next/api/geoprocessing/variables/commonHeaders/index.html +++ b/docs/next/api/geoprocessing/variables/commonHeaders/index.html @@ -4,7 +4,7 @@ commonHeaders | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/dataClassSchema/index.html b/docs/next/api/geoprocessing/variables/dataClassSchema/index.html index ee0a7f4be..ff5b6c652 100644 --- a/docs/next/api/geoprocessing/variables/dataClassSchema/index.html +++ b/docs/next/api/geoprocessing/variables/dataClassSchema/index.html @@ -4,7 +4,7 @@ dataClassSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/datasourceConfig/index.html b/docs/next/api/geoprocessing/variables/datasourceConfig/index.html index b13d345d0..735d17ad3 100644 --- a/docs/next/api/geoprocessing/variables/datasourceConfig/index.html +++ b/docs/next/api/geoprocessing/variables/datasourceConfig/index.html @@ -4,7 +4,7 @@ datasourceConfig | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/datasourceFormatDescriptions/index.html b/docs/next/api/geoprocessing/variables/datasourceFormatDescriptions/index.html index ed2a717c1..5a05668ab 100644 --- a/docs/next/api/geoprocessing/variables/datasourceFormatDescriptions/index.html +++ b/docs/next/api/geoprocessing/variables/datasourceFormatDescriptions/index.html @@ -4,7 +4,7 @@ datasourceFormatDescriptions | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/datasourceSchema/index.html b/docs/next/api/geoprocessing/variables/datasourceSchema/index.html index 8ac3e2df6..2937d6531 100644 --- a/docs/next/api/geoprocessing/variables/datasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/datasourceSchema/index.html @@ -4,7 +4,7 @@ datasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/datasourcesSchema/index.html b/docs/next/api/geoprocessing/variables/datasourcesSchema/index.html index a8a764693..5d342b706 100644 --- a/docs/next/api/geoprocessing/variables/datasourcesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/datasourcesSchema/index.html @@ -4,7 +4,7 @@ datasourcesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/defaultReportContext/index.html b/docs/next/api/geoprocessing/variables/defaultReportContext/index.html index 1b974ce5a..ce16737ef 100644 --- a/docs/next/api/geoprocessing/variables/defaultReportContext/index.html +++ b/docs/next/api/geoprocessing/variables/defaultReportContext/index.html @@ -4,7 +4,7 @@ defaultReportContext | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/defaultStatValues/index.html b/docs/next/api/geoprocessing/variables/defaultStatValues/index.html index f6fc5e28a..97954acca 100644 --- a/docs/next/api/geoprocessing/variables/defaultStatValues/index.html +++ b/docs/next/api/geoprocessing/variables/defaultStatValues/index.html @@ -4,7 +4,7 @@ defaultStatValues | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/externalDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/externalDatasourceSchema/index.html index e93f86801..02cbec632 100644 --- a/docs/next/api/geoprocessing/variables/externalDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/externalDatasourceSchema/index.html @@ -4,7 +4,7 @@ externalDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/externalRasterDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/externalRasterDatasourceSchema/index.html index 8c8c50779..349f0bd61 100644 --- a/docs/next/api/geoprocessing/variables/externalRasterDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/externalRasterDatasourceSchema/index.html @@ -4,7 +4,7 @@ externalRasterDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/externalVectorDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/externalVectorDatasourceSchema/index.html index eb6c608ac..ee4e5f96c 100644 --- a/docs/next/api/geoprocessing/variables/externalVectorDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/externalVectorDatasourceSchema/index.html @@ -4,7 +4,7 @@ externalVectorDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/extraParamsSchema/index.html b/docs/next/api/geoprocessing/variables/extraParamsSchema/index.html index 96711f918..ba8063793 100644 --- a/docs/next/api/geoprocessing/variables/extraParamsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/extraParamsSchema/index.html @@ -4,7 +4,7 @@ extraParamsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/fcSchema/index.html b/docs/next/api/geoprocessing/variables/fcSchema/index.html index 699c39639..5d0bb5549 100644 --- a/docs/next/api/geoprocessing/variables/fcSchema/index.html +++ b/docs/next/api/geoprocessing/variables/fcSchema/index.html @@ -4,7 +4,7 @@ fcSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/featureSchema/index.html b/docs/next/api/geoprocessing/variables/featureSchema/index.html index 1274f3862..e5ee34df8 100644 --- a/docs/next/api/geoprocessing/variables/featureSchema/index.html +++ b/docs/next/api/geoprocessing/variables/featureSchema/index.html @@ -4,7 +4,7 @@ featureSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/featuresSchema/index.html b/docs/next/api/geoprocessing/variables/featuresSchema/index.html index de8e322b9..f7ae0a32f 100644 --- a/docs/next/api/geoprocessing/variables/featuresSchema/index.html +++ b/docs/next/api/geoprocessing/variables/featuresSchema/index.html @@ -4,7 +4,7 @@ featuresSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/fixtures/index.html b/docs/next/api/geoprocessing/variables/fixtures/index.html index 12b194844..1217f300d 100644 --- a/docs/next/api/geoprocessing/variables/fixtures/index.html +++ b/docs/next/api/geoprocessing/variables/fixtures/index.html @@ -4,7 +4,7 @@ fixtures | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/fullColor/index.html b/docs/next/api/geoprocessing/variables/fullColor/index.html index e3952275f..eb9041d1f 100644 --- a/docs/next/api/geoprocessing/variables/fullColor/index.html +++ b/docs/next/api/geoprocessing/variables/fullColor/index.html @@ -4,7 +4,7 @@ fullColor | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/geoTypesSchema/index.html b/docs/next/api/geoprocessing/variables/geoTypesSchema/index.html index c35e6703d..d6ee105c4 100644 --- a/docs/next/api/geoprocessing/variables/geoTypesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/geoTypesSchema/index.html @@ -4,7 +4,7 @@ geoTypesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/geoblazeDefaultStatValues/index.html b/docs/next/api/geoprocessing/variables/geoblazeDefaultStatValues/index.html index 36ed2a13a..3cc5dd2c3 100644 --- a/docs/next/api/geoprocessing/variables/geoblazeDefaultStatValues/index.html +++ b/docs/next/api/geoprocessing/variables/geoblazeDefaultStatValues/index.html @@ -4,7 +4,7 @@ geoblazeDefaultStatValues | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/geographiesSchema/index.html b/docs/next/api/geoprocessing/variables/geographiesSchema/index.html index 789c0c6a7..5a302ec01 100644 --- a/docs/next/api/geoprocessing/variables/geographiesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/geographiesSchema/index.html @@ -4,7 +4,7 @@ geographiesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/geographySchema/index.html b/docs/next/api/geoprocessing/variables/geographySchema/index.html index a8c10d04c..8b5b88cb1 100644 --- a/docs/next/api/geoprocessing/variables/geographySchema/index.html +++ b/docs/next/api/geoprocessing/variables/geographySchema/index.html @@ -4,7 +4,7 @@ geographySchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/geoprocessingConfigSchema/index.html b/docs/next/api/geoprocessing/variables/geoprocessingConfigSchema/index.html index b03bd81d1..5a0efda69 100644 --- a/docs/next/api/geoprocessing/variables/geoprocessingConfigSchema/index.html +++ b/docs/next/api/geoprocessing/variables/geoprocessingConfigSchema/index.html @@ -4,7 +4,7 @@ geoprocessingConfigSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/globalDatasources/index.html b/docs/next/api/geoprocessing/variables/globalDatasources/index.html index 8f64aa767..8640dcd93 100644 --- a/docs/next/api/geoprocessing/variables/globalDatasources/index.html +++ b/docs/next/api/geoprocessing/variables/globalDatasources/index.html @@ -4,7 +4,7 @@ globalDatasources | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/globalDatasourcesById/index.html b/docs/next/api/geoprocessing/variables/globalDatasourcesById/index.html index 2aee36d4e..96bfd3076 100644 --- a/docs/next/api/geoprocessing/variables/globalDatasourcesById/index.html +++ b/docs/next/api/geoprocessing/variables/globalDatasourcesById/index.html @@ -4,7 +4,7 @@ globalDatasourcesById | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/highColor/index.html b/docs/next/api/geoprocessing/variables/highColor/index.html index d50a8e38e..744d15c80 100644 --- a/docs/next/api/geoprocessing/variables/highColor/index.html +++ b/docs/next/api/geoprocessing/variables/highColor/index.html @@ -4,7 +4,7 @@ highColor | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/importRasterDatasourceOptionsSchema/index.html b/docs/next/api/geoprocessing/variables/importRasterDatasourceOptionsSchema/index.html index 36da8072a..59ecc5c51 100644 --- a/docs/next/api/geoprocessing/variables/importRasterDatasourceOptionsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/importRasterDatasourceOptionsSchema/index.html @@ -4,7 +4,7 @@ importRasterDatasourceOptionsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/importVectorDatasourceOptionsSchema/index.html b/docs/next/api/geoprocessing/variables/importVectorDatasourceOptionsSchema/index.html index 312693ade..d7c5eb8a5 100644 --- a/docs/next/api/geoprocessing/variables/importVectorDatasourceOptionsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/importVectorDatasourceOptionsSchema/index.html @@ -4,7 +4,7 @@ importVectorDatasourceOptionsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/internalDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/internalDatasourceSchema/index.html index aea3a7893..5fa1a73e2 100644 --- a/docs/next/api/geoprocessing/variables/internalDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/internalDatasourceSchema/index.html @@ -4,7 +4,7 @@ internalDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/internalImportSchema/index.html b/docs/next/api/geoprocessing/variables/internalImportSchema/index.html index 5d0740423..145841501 100644 --- a/docs/next/api/geoprocessing/variables/internalImportSchema/index.html +++ b/docs/next/api/geoprocessing/variables/internalImportSchema/index.html @@ -4,7 +4,7 @@ internalImportSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/internalRasterDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/internalRasterDatasourceSchema/index.html index ba34f729d..de6ec01e5 100644 --- a/docs/next/api/geoprocessing/variables/internalRasterDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/internalRasterDatasourceSchema/index.html @@ -4,7 +4,7 @@ internalRasterDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/internalVectorDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/internalVectorDatasourceSchema/index.html index b3e3c8bb3..0e47c12b8 100644 --- a/docs/next/api/geoprocessing/variables/internalVectorDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/internalVectorDatasourceSchema/index.html @@ -4,7 +4,7 @@ internalVectorDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/internalVectorImportSchema/index.html b/docs/next/api/geoprocessing/variables/internalVectorImportSchema/index.html index 8bf7276de..a91d851de 100644 --- a/docs/next/api/geoprocessing/variables/internalVectorImportSchema/index.html +++ b/docs/next/api/geoprocessing/variables/internalVectorImportSchema/index.html @@ -4,7 +4,7 @@ internalVectorImportSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/iucnActivities/index.html b/docs/next/api/geoprocessing/variables/iucnActivities/index.html index 943f7add3..fa8186233 100644 --- a/docs/next/api/geoprocessing/variables/iucnActivities/index.html +++ b/docs/next/api/geoprocessing/variables/iucnActivities/index.html @@ -4,7 +4,7 @@ iucnActivities | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/iucnActivityCategories/index.html b/docs/next/api/geoprocessing/variables/iucnActivityCategories/index.html index 3d809a15a..8c2a16c45 100644 --- a/docs/next/api/geoprocessing/variables/iucnActivityCategories/index.html +++ b/docs/next/api/geoprocessing/variables/iucnActivityCategories/index.html @@ -4,7 +4,7 @@ iucnActivityCategories | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/iucnCategoriesList/index.html b/docs/next/api/geoprocessing/variables/iucnCategoriesList/index.html index 52a464ef8..1da6f5e16 100644 --- a/docs/next/api/geoprocessing/variables/iucnCategoriesList/index.html +++ b/docs/next/api/geoprocessing/variables/iucnCategoriesList/index.html @@ -4,7 +4,7 @@ iucnCategoriesList | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/iucnCategoriesMap/index.html b/docs/next/api/geoprocessing/variables/iucnCategoriesMap/index.html index 471fc99f1..8ab2edac4 100644 --- a/docs/next/api/geoprocessing/variables/iucnCategoriesMap/index.html +++ b/docs/next/api/geoprocessing/variables/iucnCategoriesMap/index.html @@ -4,7 +4,7 @@ iucnCategoriesMap | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/iucnCategoryNames/index.html b/docs/next/api/geoprocessing/variables/iucnCategoryNames/index.html index 577363816..eb5b22119 100644 --- a/docs/next/api/geoprocessing/variables/iucnCategoryNames/index.html +++ b/docs/next/api/geoprocessing/variables/iucnCategoryNames/index.html @@ -4,7 +4,7 @@ iucnCategoryNames | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/iucnLevels/index.html b/docs/next/api/geoprocessing/variables/iucnLevels/index.html index a37ae449e..a54d09b27 100644 --- a/docs/next/api/geoprocessing/variables/iucnLevels/index.html +++ b/docs/next/api/geoprocessing/variables/iucnLevels/index.html @@ -4,7 +4,7 @@ iucnLevels | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/jsonSchema/index.html b/docs/next/api/geoprocessing/variables/jsonSchema/index.html index 7a60e830c..0f27ea33f 100644 --- a/docs/next/api/geoprocessing/variables/jsonSchema/index.html +++ b/docs/next/api/geoprocessing/variables/jsonSchema/index.html @@ -4,7 +4,7 @@ jsonSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/loadedPackageSchema/index.html b/docs/next/api/geoprocessing/variables/loadedPackageSchema/index.html index c381dfb96..c29af5acf 100644 --- a/docs/next/api/geoprocessing/variables/loadedPackageSchema/index.html +++ b/docs/next/api/geoprocessing/variables/loadedPackageSchema/index.html @@ -4,7 +4,7 @@ loadedPackageSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/lowColor/index.html b/docs/next/api/geoprocessing/variables/lowColor/index.html index 64b9a3700..7d03a0765 100644 --- a/docs/next/api/geoprocessing/variables/lowColor/index.html +++ b/docs/next/api/geoprocessing/variables/lowColor/index.html @@ -4,7 +4,7 @@ lowColor | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/measurementScalesSchema/index.html b/docs/next/api/geoprocessing/variables/measurementScalesSchema/index.html index 0e0e7526c..f17fc07a8 100644 --- a/docs/next/api/geoprocessing/variables/measurementScalesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/measurementScalesSchema/index.html @@ -4,7 +4,7 @@ measurementScalesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/measurementTypesSchema/index.html b/docs/next/api/geoprocessing/variables/measurementTypesSchema/index.html index 59da4e7ba..58e6ff72b 100644 --- a/docs/next/api/geoprocessing/variables/measurementTypesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/measurementTypesSchema/index.html @@ -4,7 +4,7 @@ measurementTypesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/metricGroupSchema/index.html b/docs/next/api/geoprocessing/variables/metricGroupSchema/index.html index f60dd8f69..0b8c93a33 100644 --- a/docs/next/api/geoprocessing/variables/metricGroupSchema/index.html +++ b/docs/next/api/geoprocessing/variables/metricGroupSchema/index.html @@ -4,7 +4,7 @@ metricGroupSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/metricGroupsSchema/index.html b/docs/next/api/geoprocessing/variables/metricGroupsSchema/index.html index 1b1335041..d7f659e5a 100644 --- a/docs/next/api/geoprocessing/variables/metricGroupsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/metricGroupsSchema/index.html @@ -4,7 +4,7 @@ metricGroupsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/metricSchema/index.html b/docs/next/api/geoprocessing/variables/metricSchema/index.html index b9c495bd5..4e647d4f1 100644 --- a/docs/next/api/geoprocessing/variables/metricSchema/index.html +++ b/docs/next/api/geoprocessing/variables/metricSchema/index.html @@ -4,7 +4,7 @@ metricSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/metricsSchema/index.html b/docs/next/api/geoprocessing/variables/metricsSchema/index.html index f1144ffa4..7609d7f51 100644 --- a/docs/next/api/geoprocessing/variables/metricsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/metricsSchema/index.html @@ -4,7 +4,7 @@ metricsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/multipolygonSchema/index.html b/docs/next/api/geoprocessing/variables/multipolygonSchema/index.html index 5174c630d..7d6165a27 100644 --- a/docs/next/api/geoprocessing/variables/multipolygonSchema/index.html +++ b/docs/next/api/geoprocessing/variables/multipolygonSchema/index.html @@ -4,7 +4,7 @@ multipolygonSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/objectiveAnswerMapSchema/index.html b/docs/next/api/geoprocessing/variables/objectiveAnswerMapSchema/index.html index d0044d04c..8c5f60aa5 100644 --- a/docs/next/api/geoprocessing/variables/objectiveAnswerMapSchema/index.html +++ b/docs/next/api/geoprocessing/variables/objectiveAnswerMapSchema/index.html @@ -4,7 +4,7 @@ objectiveAnswerMapSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/objectiveAnswerSchema/index.html b/docs/next/api/geoprocessing/variables/objectiveAnswerSchema/index.html index f996ffe37..6e9e9256d 100644 --- a/docs/next/api/geoprocessing/variables/objectiveAnswerSchema/index.html +++ b/docs/next/api/geoprocessing/variables/objectiveAnswerSchema/index.html @@ -4,7 +4,7 @@ objectiveAnswerSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/objectiveCountsAnswers/index.html b/docs/next/api/geoprocessing/variables/objectiveCountsAnswers/index.html index 82454e5dc..e601c83d0 100644 --- a/docs/next/api/geoprocessing/variables/objectiveCountsAnswers/index.html +++ b/docs/next/api/geoprocessing/variables/objectiveCountsAnswers/index.html @@ -4,7 +4,7 @@ objectiveCountsAnswers | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/objectiveCountsColorMap/index.html b/docs/next/api/geoprocessing/variables/objectiveCountsColorMap/index.html index fe97e9e25..a7df77370 100644 --- a/docs/next/api/geoprocessing/variables/objectiveCountsColorMap/index.html +++ b/docs/next/api/geoprocessing/variables/objectiveCountsColorMap/index.html @@ -4,7 +4,7 @@ objectiveCountsColorMap | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/objectiveSchema/index.html b/docs/next/api/geoprocessing/variables/objectiveSchema/index.html index b94b839c4..8fdb22bfb 100644 --- a/docs/next/api/geoprocessing/variables/objectiveSchema/index.html +++ b/docs/next/api/geoprocessing/variables/objectiveSchema/index.html @@ -4,7 +4,7 @@ objectiveSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/objectivesSchema/index.html b/docs/next/api/geoprocessing/variables/objectivesSchema/index.html index cdc7c5acd..c860238c9 100644 --- a/docs/next/api/geoprocessing/variables/objectivesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/objectivesSchema/index.html @@ -4,7 +4,7 @@ objectivesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/packageSchema/index.html b/docs/next/api/geoprocessing/variables/packageSchema/index.html index 27c78e14d..423729c55 100644 --- a/docs/next/api/geoprocessing/variables/packageSchema/index.html +++ b/docs/next/api/geoprocessing/variables/packageSchema/index.html @@ -4,7 +4,7 @@ packageSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/planningAreaTypesSchema/index.html b/docs/next/api/geoprocessing/variables/planningAreaTypesSchema/index.html index 853319685..0c0e38666 100644 --- a/docs/next/api/geoprocessing/variables/planningAreaTypesSchema/index.html +++ b/docs/next/api/geoprocessing/variables/planningAreaTypesSchema/index.html @@ -4,7 +4,7 @@ planningAreaTypesSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/polygonSchema/index.html b/docs/next/api/geoprocessing/variables/polygonSchema/index.html index d91a6ca6d..e588d317a 100644 --- a/docs/next/api/geoprocessing/variables/polygonSchema/index.html +++ b/docs/next/api/geoprocessing/variables/polygonSchema/index.html @@ -4,7 +4,7 @@ polygonSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/projectSchema/index.html b/docs/next/api/geoprocessing/variables/projectSchema/index.html index 468e256fd..0d4ddf91a 100644 --- a/docs/next/api/geoprocessing/variables/projectSchema/index.html +++ b/docs/next/api/geoprocessing/variables/projectSchema/index.html @@ -4,7 +4,7 @@ projectSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rasterDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/rasterDatasourceSchema/index.html index 782cfdf45..ed26948b6 100644 --- a/docs/next/api/geoprocessing/variables/rasterDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/rasterDatasourceSchema/index.html @@ -4,7 +4,7 @@ rasterDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rbcsAnchoringActivities/index.html b/docs/next/api/geoprocessing/variables/rbcsAnchoringActivities/index.html index 37a7fd995..feee022e9 100644 --- a/docs/next/api/geoprocessing/variables/rbcsAnchoringActivities/index.html +++ b/docs/next/api/geoprocessing/variables/rbcsAnchoringActivities/index.html @@ -4,7 +4,7 @@ rbcsAnchoringActivities | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rbcsAquacultureActivities/index.html b/docs/next/api/geoprocessing/variables/rbcsAquacultureActivities/index.html index 1c03f1b2e..4eafda7f2 100644 --- a/docs/next/api/geoprocessing/variables/rbcsAquacultureActivities/index.html +++ b/docs/next/api/geoprocessing/variables/rbcsAquacultureActivities/index.html @@ -4,7 +4,7 @@ rbcsAquacultureActivities | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rbcsConstants/index.html b/docs/next/api/geoprocessing/variables/rbcsConstants/index.html index f83d93129..fb4e6417a 100644 --- a/docs/next/api/geoprocessing/variables/rbcsConstants/index.html +++ b/docs/next/api/geoprocessing/variables/rbcsConstants/index.html @@ -4,7 +4,7 @@ rbcsConstants | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rbcsGearTypes/index.html b/docs/next/api/geoprocessing/variables/rbcsGearTypes/index.html index 36020ab72..6865d2c21 100644 --- a/docs/next/api/geoprocessing/variables/rbcsGearTypes/index.html +++ b/docs/next/api/geoprocessing/variables/rbcsGearTypes/index.html @@ -4,7 +4,7 @@ rbcsGearTypes | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rbcsMpaProtectionLevels/index.html b/docs/next/api/geoprocessing/variables/rbcsMpaProtectionLevels/index.html index 76171300b..c6e307437 100644 --- a/docs/next/api/geoprocessing/variables/rbcsMpaProtectionLevels/index.html +++ b/docs/next/api/geoprocessing/variables/rbcsMpaProtectionLevels/index.html @@ -4,7 +4,7 @@ rbcsMpaProtectionLevels | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/rbcsScores/index.html b/docs/next/api/geoprocessing/variables/rbcsScores/index.html index 24e5b047b..db35aa052 100644 --- a/docs/next/api/geoprocessing/variables/rbcsScores/index.html +++ b/docs/next/api/geoprocessing/variables/rbcsScores/index.html @@ -4,7 +4,7 @@ rbcsScores | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/seaSketchReportingLanguageChangeEvent/index.html b/docs/next/api/geoprocessing/variables/seaSketchReportingLanguageChangeEvent/index.html index b552b7896..c09354627 100644 --- a/docs/next/api/geoprocessing/variables/seaSketchReportingLanguageChangeEvent/index.html +++ b/docs/next/api/geoprocessing/variables/seaSketchReportingLanguageChangeEvent/index.html @@ -4,7 +4,7 @@ seaSketchReportingLanguageChangeEvent | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/seaSketchReportingMessageEventType/index.html b/docs/next/api/geoprocessing/variables/seaSketchReportingMessageEventType/index.html index 3d07b6bb0..a2d53a473 100644 --- a/docs/next/api/geoprocessing/variables/seaSketchReportingMessageEventType/index.html +++ b/docs/next/api/geoprocessing/variables/seaSketchReportingMessageEventType/index.html @@ -4,7 +4,7 @@ seaSketchReportingMessageEventType | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/seaSketchReportingVisibleLayersChangeEvent/index.html b/docs/next/api/geoprocessing/variables/seaSketchReportingVisibleLayersChangeEvent/index.html index 532bdfd19..b09bba77c 100644 --- a/docs/next/api/geoprocessing/variables/seaSketchReportingVisibleLayersChangeEvent/index.html +++ b/docs/next/api/geoprocessing/variables/seaSketchReportingVisibleLayersChangeEvent/index.html @@ -4,7 +4,7 @@ seaSketchReportingVisibleLayersChangeEvent | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/statsSchema/index.html b/docs/next/api/geoprocessing/variables/statsSchema/index.html index 3d429a381..3b9c9f2dd 100644 --- a/docs/next/api/geoprocessing/variables/statsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/statsSchema/index.html @@ -4,7 +4,7 @@ statsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/supportedFormatsSchema/index.html b/docs/next/api/geoprocessing/variables/supportedFormatsSchema/index.html index 7c6e94510..31431e512 100644 --- a/docs/next/api/geoprocessing/variables/supportedFormatsSchema/index.html +++ b/docs/next/api/geoprocessing/variables/supportedFormatsSchema/index.html @@ -4,7 +4,7 @@ supportedFormatsSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/vectorDatasourceSchema/index.html b/docs/next/api/geoprocessing/variables/vectorDatasourceSchema/index.html index 4a3d30adb..57529799a 100644 --- a/docs/next/api/geoprocessing/variables/vectorDatasourceSchema/index.html +++ b/docs/next/api/geoprocessing/variables/vectorDatasourceSchema/index.html @@ -4,7 +4,7 @@ vectorDatasourceSchema | SeaSketch Geoprocessing - + diff --git a/docs/next/api/geoprocessing/variables/version/index.html b/docs/next/api/geoprocessing/variables/version/index.html index 097085ad1..ab01a6874 100644 --- a/docs/next/api/geoprocessing/variables/version/index.html +++ b/docs/next/api/geoprocessing/variables/version/index.html @@ -4,7 +4,7 @@ version | SeaSketch Geoprocessing - + @@ -398,6 +398,6 @@

typetypes

types: string = "dist/src/index.d.ts";

version

-
version: string = "7.0.0-beta.12";
+
version: string = "7.0.0-beta.13";
\ No newline at end of file diff --git a/docs/next/api/index.html b/docs/next/api/index.html index 9848af7f3..8d47508d2 100644 --- a/docs/next/api/index.html +++ b/docs/next/api/index.html @@ -4,7 +4,7 @@ Typescript API | SeaSketch Geoprocessing - + diff --git a/docs/next/architecture/index.html b/docs/next/architecture/index.html index 182aae3f6..8941dba50 100644 --- a/docs/next/architecture/index.html +++ b/docs/next/architecture/index.html @@ -4,7 +4,7 @@ Architecture | SeaSketch Geoprocessing - + diff --git a/docs/next/cli/index.html b/docs/next/cli/index.html index 894c7ab90..b8e6d1b82 100644 --- a/docs/next/cli/index.html +++ b/docs/next/cli/index.html @@ -4,7 +4,7 @@ Command Line Interface | SeaSketch Geoprocessing - + diff --git a/docs/next/codespaces/index.html b/docs/next/codespaces/index.html index 6f1bf324f..5ebcd4624 100644 --- a/docs/next/codespaces/index.html +++ b/docs/next/codespaces/index.html @@ -4,7 +4,7 @@ Github Codespaces | SeaSketch Geoprocessing - + diff --git a/docs/next/concepts/index.html b/docs/next/concepts/index.html index 0479fa9e0..9887415e4 100644 --- a/docs/next/concepts/index.html +++ b/docs/next/concepts/index.html @@ -4,7 +4,7 @@ Concepts | SeaSketch Geoprocessing - + diff --git a/docs/next/contributing/index.html b/docs/next/contributing/index.html index 13609ab66..93a8379ef 100644 --- a/docs/next/contributing/index.html +++ b/docs/next/contributing/index.html @@ -4,7 +4,7 @@ Contributing | SeaSketch Geoprocessing - + diff --git a/docs/next/dataimport/index.html b/docs/next/dataimport/index.html index 9144291ef..9698c8b74 100644 --- a/docs/next/dataimport/index.html +++ b/docs/next/dataimport/index.html @@ -4,7 +4,7 @@ Data Import | SeaSketch Geoprocessing - + diff --git a/docs/next/dataproviders/index.html b/docs/next/dataproviders/index.html index 5f6517b31..78f3ebbb0 100644 --- a/docs/next/dataproviders/index.html +++ b/docs/next/dataproviders/index.html @@ -4,7 +4,7 @@ Data Providers | SeaSketch Geoprocessing - + diff --git a/docs/next/devcontainer/index.html b/docs/next/devcontainer/index.html index bb57609bf..833b79332 100644 --- a/docs/next/devcontainer/index.html +++ b/docs/next/devcontainer/index.html @@ -4,7 +4,7 @@ Devcontainers | SeaSketch Geoprocessing - + diff --git a/docs/next/extending/index.html b/docs/next/extending/index.html index 0a7f7e2bd..d4c9ce1d8 100644 --- a/docs/next/extending/index.html +++ b/docs/next/extending/index.html @@ -4,7 +4,7 @@ Extending | SeaSketch Geoprocessing - + diff --git a/docs/next/geoprocessing/index.html b/docs/next/geoprocessing/index.html index acb148961..641ddb73b 100644 --- a/docs/next/geoprocessing/index.html +++ b/docs/next/geoprocessing/index.html @@ -4,7 +4,7 @@ Geoprocessing | SeaSketch Geoprocessing - + diff --git a/docs/next/gip/GIP-1-i18n/index.html b/docs/next/gip/GIP-1-i18n/index.html index fdcab116a..5b65716b6 100644 --- a/docs/next/gip/GIP-1-i18n/index.html +++ b/docs/next/gip/GIP-1-i18n/index.html @@ -4,7 +4,7 @@ Internationalization (i18n) | SeaSketch Geoprocessing - + diff --git a/docs/next/gip/index.html b/docs/next/gip/index.html index a097b39c5..7a3ee68d9 100644 --- a/docs/next/gip/index.html +++ b/docs/next/gip/index.html @@ -4,7 +4,7 @@ GIP | SeaSketch Geoprocessing - + diff --git a/docs/next/index.html b/docs/next/index.html index 3688695e5..3e38dcadc 100644 --- a/docs/next/index.html +++ b/docs/next/index.html @@ -4,7 +4,7 @@ Introduction | SeaSketch Geoprocessing - + diff --git a/docs/next/intro/index.html b/docs/next/intro/index.html index bef864361..6e27b63fa 100644 --- a/docs/next/intro/index.html +++ b/docs/next/intro/index.html @@ -4,7 +4,7 @@ Tutorial Intro | SeaSketch Geoprocessing - + diff --git a/docs/next/linkData/index.html b/docs/next/linkData/index.html index f6e006020..109c99a77 100644 --- a/docs/next/linkData/index.html +++ b/docs/next/linkData/index.html @@ -4,7 +4,7 @@ Link Project Data | SeaSketch Geoprocessing - + diff --git a/docs/next/multiBoundary/index.html b/docs/next/multiBoundary/index.html index b03331979..aee725674 100644 --- a/docs/next/multiBoundary/index.html +++ b/docs/next/multiBoundary/index.html @@ -4,7 +4,7 @@ Multiple Planning Boundaries | SeaSketch Geoprocessing - + diff --git a/docs/next/precalc/index.html b/docs/next/precalc/index.html index 05a892149..1c9ab016a 100644 --- a/docs/next/precalc/index.html +++ b/docs/next/precalc/index.html @@ -4,7 +4,7 @@ Precalc Data | SeaSketch Geoprocessing - + diff --git a/docs/next/preprocessing/index.html b/docs/next/preprocessing/index.html index a7dc34762..a2b01b43f 100644 --- a/docs/next/preprocessing/index.html +++ b/docs/next/preprocessing/index.html @@ -4,7 +4,7 @@ Preprocessing | SeaSketch Geoprocessing - + diff --git a/docs/next/projectclient/index.html b/docs/next/projectclient/index.html index fa6792406..c306350de 100644 --- a/docs/next/projectclient/index.html +++ b/docs/next/projectclient/index.html @@ -4,7 +4,7 @@ Project Client | SeaSketch Geoprocessing - + diff --git a/docs/next/publicdatasources/index.html b/docs/next/publicdatasources/index.html index 8bf9b1ffe..3c54b89a6 100644 --- a/docs/next/publicdatasources/index.html +++ b/docs/next/publicdatasources/index.html @@ -4,7 +4,7 @@ Public Datasources | SeaSketch Geoprocessing - + diff --git a/docs/next/structure/index.html b/docs/next/structure/index.html index 6459ed6ed..97043fa88 100644 --- a/docs/next/structure/index.html +++ b/docs/next/structure/index.html @@ -4,7 +4,7 @@ Project Structure | SeaSketch Geoprocessing - + diff --git a/docs/next/testing/index.html b/docs/next/testing/index.html index 97b0983b2..80d729d58 100644 --- a/docs/next/testing/index.html +++ b/docs/next/testing/index.html @@ -4,7 +4,7 @@ Testing | SeaSketch Geoprocessing - + diff --git a/docs/next/thirdpartydata/index.html b/docs/next/thirdpartydata/index.html index 0c3569c21..86a201dee 100644 --- a/docs/next/thirdpartydata/index.html +++ b/docs/next/thirdpartydata/index.html @@ -4,7 +4,7 @@ Third Party Data | SeaSketch Geoprocessing - + @@ -12,7 +12,7 @@

With all datasets, it is important to check if there is an authoritative dataset that should be used. The sources below are diverse and may offer more accuracy, but they are not necessarily authoritative.

Global datasources

A number of global datasources are published in the global-datasources project.

-

These are already published as cloud-optimied GeoTIFF's and flatgeobuf files and you can add them to your datasources.json file.

+

These are already published as cloud-optimied GeoTIFF's and you can use their URL's directly with loadFgb.

Marine Regions

The Marine Regions website is a good starting point for boundaries relevant to marine planning including EEZ, territorial sea, etc.

It's not always the most accurate, but it has global coverage. If the coastline for the EEZ dataset is not accurate enough you can take the "marine and land zones" dataset and then punch out the land holes using the OSM land dataset below.

diff --git a/docs/next/toolbox/index.html b/docs/next/toolbox/index.html index cfaf80023..6f35bf660 100644 --- a/docs/next/toolbox/index.html +++ b/docs/next/toolbox/index.html @@ -4,7 +4,7 @@ Toolbox | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-basics/congratulations/index.html b/docs/next/tutorial-basics/congratulations/index.html index 0e3f7810d..3dcb3f61a 100644 --- a/docs/next/tutorial-basics/congratulations/index.html +++ b/docs/next/tutorial-basics/congratulations/index.html @@ -4,7 +4,7 @@ Congratulations! | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-basics/create-a-blog-post/index.html b/docs/next/tutorial-basics/create-a-blog-post/index.html index b306f3049..b928ec56b 100644 --- a/docs/next/tutorial-basics/create-a-blog-post/index.html +++ b/docs/next/tutorial-basics/create-a-blog-post/index.html @@ -4,7 +4,7 @@ Create a Blog Post | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-basics/create-a-document/index.html b/docs/next/tutorial-basics/create-a-document/index.html index cb547bca1..b257ce001 100644 --- a/docs/next/tutorial-basics/create-a-document/index.html +++ b/docs/next/tutorial-basics/create-a-document/index.html @@ -4,7 +4,7 @@ Create a Document | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-basics/create-a-page/index.html b/docs/next/tutorial-basics/create-a-page/index.html index 7a9a5d030..046150fc9 100644 --- a/docs/next/tutorial-basics/create-a-page/index.html +++ b/docs/next/tutorial-basics/create-a-page/index.html @@ -4,7 +4,7 @@ Create a Page | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-basics/deploy-your-site/index.html b/docs/next/tutorial-basics/deploy-your-site/index.html index 0b793c9ab..03dabe639 100644 --- a/docs/next/tutorial-basics/deploy-your-site/index.html +++ b/docs/next/tutorial-basics/deploy-your-site/index.html @@ -4,7 +4,7 @@ Deploy your site | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-basics/markdown-features/index.html b/docs/next/tutorial-basics/markdown-features/index.html index 5450050c7..ec9cc4ff4 100644 --- a/docs/next/tutorial-basics/markdown-features/index.html +++ b/docs/next/tutorial-basics/markdown-features/index.html @@ -4,7 +4,7 @@ Markdown Features | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-extras/manage-docs-versions/index.html b/docs/next/tutorial-extras/manage-docs-versions/index.html index be2e4ea01..d4484648e 100644 --- a/docs/next/tutorial-extras/manage-docs-versions/index.html +++ b/docs/next/tutorial-extras/manage-docs-versions/index.html @@ -4,7 +4,7 @@ Manage Docs Versions | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorial-extras/translate-your-site/index.html b/docs/next/tutorial-extras/translate-your-site/index.html index 99293fc8c..db714c4e3 100644 --- a/docs/next/tutorial-extras/translate-your-site/index.html +++ b/docs/next/tutorial-extras/translate-your-site/index.html @@ -4,7 +4,7 @@ Translate your site | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/clouddrive/index.html b/docs/next/tutorials/clouddrive/index.html index 18fb2bbf7..13884374f 100644 --- a/docs/next/tutorials/clouddrive/index.html +++ b/docs/next/tutorials/clouddrive/index.html @@ -4,7 +4,7 @@ Cloud Drive Syncing | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/deploy/index.html b/docs/next/tutorials/deploy/index.html index 21196b0e0..c33f7a456 100644 --- a/docs/next/tutorials/deploy/index.html +++ b/docs/next/tutorials/deploy/index.html @@ -4,7 +4,7 @@ Deploy your project | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/existingproject/index.html b/docs/next/tutorials/existingproject/index.html index f6aff9a2f..66973f8ed 100644 --- a/docs/next/tutorials/existingproject/index.html +++ b/docs/next/tutorials/existingproject/index.html @@ -4,7 +4,7 @@ Setup an exising geoprocessing project | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/extraParams/index.html b/docs/next/tutorials/extraParams/index.html index 7fa38937b..d4aed0ff0 100644 --- a/docs/next/tutorials/extraParams/index.html +++ b/docs/next/tutorials/extraParams/index.html @@ -4,7 +4,7 @@ Adding and Passing Extra Parameters | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/index.html b/docs/next/tutorials/index.html index 691f09624..064430719 100644 --- a/docs/next/tutorials/index.html +++ b/docs/next/tutorials/index.html @@ -4,7 +4,7 @@ System Setup | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/newproject/index.html b/docs/next/tutorials/newproject/index.html index b983f0fb0..55b7d0652 100644 --- a/docs/next/tutorials/newproject/index.html +++ b/docs/next/tutorials/newproject/index.html @@ -4,7 +4,7 @@ Create New Geoprocessing Project | SeaSketch Geoprocessing - + @@ -77,7 +77,7 @@

C

First things first, follow the instructions to create a new SeaSketch project. This includes defining the planning bounds and creating a Sketch class. You will want to create a Polygon sketch class with a name that makes sense for you project (e.g. MPA for Marine Protected Area) and then also a Collection sketch class to group instances of your polygon sketch class into. Note that sketch classes are where you will integrate your geoprocessing services to view reports, but you will not do it at this time.

Initialize New Geoprocessing Project

Start with initializing a new project:

-
cd /workspaces
npx @seasketch/geoprocessing@7.0.0-beta.12 init 7.0.0-beta.12
+
cd /workspaces
npx @seasketch/geoprocessing@7.0.0-beta.13 init 7.0.0-beta.13

Tips:

  • the answers to all of the init questions can be changed later, so don't worry if you don't know the answer.
  • diff --git a/docs/next/tutorials/sampleproject/index.html b/docs/next/tutorials/sampleproject/index.html index 3271e7472..98d1756b6 100644 --- a/docs/next/tutorials/sampleproject/index.html +++ b/docs/next/tutorials/sampleproject/index.html @@ -4,7 +4,7 @@ Create Sample Project | SeaSketch Geoprocessing - + @@ -21,7 +21,7 @@

    Have questions along the way? Start a discussion on Github

    Initialize Geoprocessing Project

    Start the project init process, which will download the framework, and collect required project metadata.

    -
    cd /workspaces
    npx @seasketch/geoprocessing@7.0.0-beta.12 init 7.0.0-beta.12
    +
    cd /workspaces
    npx @seasketch/geoprocessing@7.0.0-beta.13 init 7.0.0-beta.13
    ? Choose a name for your project
    fsm-reports-test
    ? Please provide a short description of this project
    Micronesia reports
    ? Source code repository location
    [LEAVE BLANK]
    ? Your name
    [YOUR_NAME]
    ? Your email
    [YOUR_EMAIL]
    ? Organization name (optional)
    Example organization
    ? What software license would you like to use?
    BSD-3-Clause
    ? What AWS region would you like to deploy functions in?
    us-west-1
    ? What languages will your reports be published in, other than English? (leave blank for none)
    Chuukese
    Kosraean

    After pressing Enter, your project will be created and all NodeJS software dependencies installed. If your language is not present, you will be able to add it later.

    Now, re-open VSCode one level deeper, in your project folder::

    diff --git a/docs/next/tutorials/sketchAttributes/index.html b/docs/next/tutorials/sketchAttributes/index.html index df4347440..f56d69685 100644 --- a/docs/next/tutorials/sketchAttributes/index.html +++ b/docs/next/tutorials/sketchAttributes/index.html @@ -4,7 +4,7 @@ Custom Sketch Attributes | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/storybook/index.html b/docs/next/tutorials/storybook/index.html index ca1a3cac1..6e1db7456 100644 --- a/docs/next/tutorials/storybook/index.html +++ b/docs/next/tutorials/storybook/index.html @@ -4,7 +4,7 @@ Advanced storybook usage | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/updateDatasource/index.html b/docs/next/tutorials/updateDatasource/index.html index 15f1489ba..22d649c25 100644 --- a/docs/next/tutorials/updateDatasource/index.html +++ b/docs/next/tutorials/updateDatasource/index.html @@ -4,7 +4,7 @@ Updating A Datasource | SeaSketch Geoprocessing - + diff --git a/docs/next/tutorials/upgrade/index.html b/docs/next/tutorials/upgrade/index.html index 2b392b6a3..16619f547 100644 --- a/docs/next/tutorials/upgrade/index.html +++ b/docs/next/tutorials/upgrade/index.html @@ -4,7 +4,7 @@ Upgrading | SeaSketch Geoprocessing - + diff --git a/docs/next/workers/index.html b/docs/next/workers/index.html index 09c2eaa61..da0ac05e5 100644 --- a/docs/next/workers/index.html +++ b/docs/next/workers/index.html @@ -4,7 +4,7 @@ Worker Functions | SeaSketch Geoprocessing - + diff --git a/docs/testing/index.html b/docs/testing/index.html index 7a43bd387..0e8b7ebff 100644 --- a/docs/testing/index.html +++ b/docs/testing/index.html @@ -4,7 +4,7 @@ Testing | SeaSketch Geoprocessing - + diff --git a/docs/tipsandtricks/index.html b/docs/tipsandtricks/index.html index a5ad08183..460e05e64 100644 --- a/docs/tipsandtricks/index.html +++ b/docs/tipsandtricks/index.html @@ -4,7 +4,7 @@ Tips and Tricks | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-basics/congratulations/index.html b/docs/tutorial-basics/congratulations/index.html index c0827136d..2a63c739b 100644 --- a/docs/tutorial-basics/congratulations/index.html +++ b/docs/tutorial-basics/congratulations/index.html @@ -4,7 +4,7 @@ Congratulations! | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-basics/create-a-blog-post/index.html b/docs/tutorial-basics/create-a-blog-post/index.html index 3351cc8dc..679227df2 100644 --- a/docs/tutorial-basics/create-a-blog-post/index.html +++ b/docs/tutorial-basics/create-a-blog-post/index.html @@ -4,7 +4,7 @@ Create a Blog Post | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-basics/create-a-document/index.html b/docs/tutorial-basics/create-a-document/index.html index 2c276539a..07021572d 100644 --- a/docs/tutorial-basics/create-a-document/index.html +++ b/docs/tutorial-basics/create-a-document/index.html @@ -4,7 +4,7 @@ Create a Document | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-basics/create-a-page/index.html b/docs/tutorial-basics/create-a-page/index.html index a1275f8b7..b7153a4ed 100644 --- a/docs/tutorial-basics/create-a-page/index.html +++ b/docs/tutorial-basics/create-a-page/index.html @@ -4,7 +4,7 @@ Create a Page | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-basics/deploy-your-site/index.html b/docs/tutorial-basics/deploy-your-site/index.html index f2be8bd08..a1835ea76 100644 --- a/docs/tutorial-basics/deploy-your-site/index.html +++ b/docs/tutorial-basics/deploy-your-site/index.html @@ -4,7 +4,7 @@ Deploy your site | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-basics/markdown-features/index.html b/docs/tutorial-basics/markdown-features/index.html index 0efa402e0..60948a600 100644 --- a/docs/tutorial-basics/markdown-features/index.html +++ b/docs/tutorial-basics/markdown-features/index.html @@ -4,7 +4,7 @@ Markdown Features | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-extras/manage-docs-versions/index.html b/docs/tutorial-extras/manage-docs-versions/index.html index a00b332c5..fd873dd56 100644 --- a/docs/tutorial-extras/manage-docs-versions/index.html +++ b/docs/tutorial-extras/manage-docs-versions/index.html @@ -4,7 +4,7 @@ Manage Docs Versions | SeaSketch Geoprocessing - + diff --git a/docs/tutorial-extras/translate-your-site/index.html b/docs/tutorial-extras/translate-your-site/index.html index f0ef98551..75fa5e659 100644 --- a/docs/tutorial-extras/translate-your-site/index.html +++ b/docs/tutorial-extras/translate-your-site/index.html @@ -4,7 +4,7 @@ Translate your site | SeaSketch Geoprocessing - + diff --git a/docs/tutorials/index.html b/docs/tutorials/index.html index 469711b29..1a4e4b2ad 100644 --- a/docs/tutorials/index.html +++ b/docs/tutorials/index.html @@ -4,7 +4,7 @@ Tutorials | SeaSketch Geoprocessing - + diff --git a/index.html b/index.html index 6da8d1e6d..cc389d41d 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ SeaSketch Geoprocessing | SeaSketch Geoprocessing - + diff --git a/markdown-page/index.html b/markdown-page/index.html index 83b240b64..08a106c60 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -4,7 +4,7 @@ Markdown page example | SeaSketch Geoprocessing - + diff --git a/storybook/index.html b/storybook/index.html index f0cb2991f..c569be694 100644 --- a/storybook/index.html +++ b/storybook/index.html @@ -4,7 +4,7 @@ Storybook | SeaSketch Geoprocessing - +