Publish curated GeoIntel source from e92b13f5511700f5410671ee9dd7476efa584d8c
No files matched your search
@@ -1,3 +1,3 @@
|
||||
# Public source export
|
||||
|
||||
This source snapshot was generated from the private canonical repository at revision `ac977bcd4b7b08bcce38edac2bcb9b05da0555ed`. It contains no private Git history or operational evidence. Changes are published from the canonical repository.
|
||||
This source snapshot was generated from the private canonical repository at revision `e92b13f5511700f5410671ee9dd7476efa584d8c`. It contains no private Git history or operational evidence. Changes are published from the canonical repository.
|
||||
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"schemaVersion": 1,
|
||||
"sourceRevision": "ac977bcd4b7b08bcce38edac2bcb9b05da0555ed",
|
||||
"sourceRevision": "e92b13f5511700f5410671ee9dd7476efa584d8c",
|
||||
"files": [
|
||||
{
|
||||
"path": ".dockerignore",
|
||||
"sha256": "525f8df7c473d7e50a23cb1ea34689a0ec9775c6e2e473af60e694a905ba2c0a",
|
||||
"bytes": 1116
|
||||
"sha256": "d6ef949ac81b034249bf8907a47d7fba1265e3cde0abd679a0884f321a57143a",
|
||||
"bytes": 1059
|
||||
},
|
||||
{
|
||||
"path": ".env.example",
|
||||
"sha256": "2cb8c1cf2bfa9303217055251f550ee28b41ba93a2bd225a3a1b3c8fa4ef918f",
|
||||
"bytes": 8878
|
||||
"sha256": "501d5b3581a95f3671159e0828857e29f063b9e7e68c461f9a36f32ab1b484ca",
|
||||
"bytes": 8669
|
||||
},
|
||||
{
|
||||
"path": ".gitattributes",
|
||||
"sha256": "8892e1aba7186571981ece777fbf9fa5dce07cbece89452c809cf519cf2230b6",
|
||||
"bytes": 428
|
||||
"sha256": "4e368134014b280cf7228a8e43f3988c0905003c9d5fc92ce6b9f7e9cea61619",
|
||||
"bytes": 411
|
||||
},
|
||||
{
|
||||
"path": ".gitignore",
|
||||
"sha256": "e43f0019c9f81f804755d0a2152d3e6ff48a65ff38dbd517b1682a32f7a9517a",
|
||||
"bytes": 1265
|
||||
"sha256": "17f709e5866701e38b3c1a10431f572d44a87f52e7f9da5562dd448ec53d4c6e",
|
||||
"bytes": 1197
|
||||
},
|
||||
{
|
||||
"path": ".gitleaks.toml",
|
||||
@@ -34,18 +34,18 @@
|
||||
},
|
||||
{
|
||||
"path": "LICENSE",
|
||||
"sha256": "2238305037ae93110d0ca331c81dd0e12b739fa2fda8a6486a39ec13e2f733ce",
|
||||
"bytes": 11549
|
||||
"sha256": "0641afa02003bd63e0974cf112624ab401ff7b61004bab6c44d45f95e1d0b7cf",
|
||||
"bytes": 11348
|
||||
},
|
||||
{
|
||||
"path": "Makefile",
|
||||
"sha256": "ae9ab022cdd490375c8a08afe726ebc5fddb6c881406e60013d0c63764071a26",
|
||||
"bytes": 1045
|
||||
"sha256": "2e65188ac375b6c34762496c04dced970334325a63a7d74a7a48451b962d893d",
|
||||
"bytes": 995
|
||||
},
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "45257f75658fbc3ce46c3ee82438b363f7fb6c0a1130187f8d7256d86f5b07a9",
|
||||
"bytes": 651
|
||||
"sha256": "650316a7f7a185bb0100d48e5cf092b4b624d6e3066e54f827f7aab0ee95b481",
|
||||
"bytes": 4394
|
||||
},
|
||||
{
|
||||
"path": "SECURITY.md",
|
||||
@@ -54,13 +54,13 @@
|
||||
},
|
||||
{
|
||||
"path": "VERSION",
|
||||
"sha256": "4ca8bbd3c595ee306226c6996b32b8d47a900217c55a7ed0cfc868ee444f34f1",
|
||||
"bytes": 7
|
||||
"sha256": "59854984853104df5c353e2f681a15fc7924742f9a2e468c29af248dce45ce03",
|
||||
"bytes": 6
|
||||
},
|
||||
{
|
||||
"path": "backend/.dockerignore",
|
||||
"sha256": "f946db7420ef136172ac82a6f5e1e03538b8715457527746a46eb7ef1efa8427",
|
||||
"bytes": 146
|
||||
"sha256": "059bcf78088a08539b107f2fb2b4fe96e70e9e3e780d24691e28783bef3fc01c",
|
||||
"bytes": 134
|
||||
},
|
||||
{
|
||||
"path": "backend/.gitkeep",
|
||||
@@ -89,8 +89,8 @@
|
||||
},
|
||||
{
|
||||
"path": "backend/alembic/script.py.mako",
|
||||
"sha256": "f109ea3dbd6c2ad06d0d9fd3beb875194fdff681e9d141575d49fd416e943baa",
|
||||
"bytes": 359
|
||||
"sha256": "6a5ce92388f95d583aeaec7e4d6cfee91f71df26cad516100b6275b75427fbbf",
|
||||
"bytes": 339
|
||||
},
|
||||
{
|
||||
"path": "backend/alembic/versions/202601110001_initial.py",
|
||||
@@ -984,28 +984,28 @@
|
||||
},
|
||||
{
|
||||
"path": "backend/pyproject.toml",
|
||||
"sha256": "a796054de7bd2ca6e1328151e5eace0d59dcbd0153273588b1b051f67408e78b",
|
||||
"bytes": 1136
|
||||
"sha256": "616e61389aaab9d325926558f290959fdff338f60a30ebdb25f24255e77d295e",
|
||||
"bytes": 1156
|
||||
},
|
||||
{
|
||||
"path": "backend/requirements-ai-linux.lock",
|
||||
"sha256": "d219496969ea781dab461a1ff396e7ebe7a5bc516e4cfd86739eb99036e3cc9d",
|
||||
"bytes": 5784
|
||||
"sha256": "2361d7748b02f8da4055b54ab5deff5df4a9a5a12aeca9f2736debbf89e3d92d",
|
||||
"bytes": 5725
|
||||
},
|
||||
{
|
||||
"path": "backend/requirements-build-tools.lock",
|
||||
"sha256": "57942999e9e41a1cd2e49071c0e38830f4c844fd4566627f74b8158b97883ab5",
|
||||
"bytes": 354
|
||||
"sha256": "6932e4e0bc14d3226bb33013508522124e205cf57cfb183d989faf4e28611c71",
|
||||
"bytes": 350
|
||||
},
|
||||
{
|
||||
"path": "backend/requirements-ci.lock",
|
||||
"sha256": "e492dbe9f60c33403840e66ed9e0967016fec28a5d7cfac6b87a979a6ef4c8a6",
|
||||
"bytes": 126127
|
||||
"sha256": "e8a908f7c8ce2556d7cb9019e056a292fc41de84c67332cfa31b35feeee7ad36",
|
||||
"bytes": 139649
|
||||
},
|
||||
{
|
||||
"path": "backend/requirements-runtime.lock",
|
||||
"sha256": "dda6efcaebb0dab60a081c4dae377f3065318f04b053e9a6a33dfe75fa13bd44",
|
||||
"bytes": 122359
|
||||
"sha256": "c04d6b4b81e3077bc134844b0dfb6ca141c21f8e936e66909c2a937c80541807",
|
||||
"bytes": 120817
|
||||
},
|
||||
{
|
||||
"path": "backend/scripts/cleanup_demo_artifacts.py",
|
||||
@@ -1804,8 +1804,8 @@
|
||||
},
|
||||
{
|
||||
"path": "backend/tests/test_sprint177_mol_primary_focus.py",
|
||||
"sha256": "95f85a7eefcbd59ad146623d20999c092f4629752ed3af46541fe19590edfad2",
|
||||
"bytes": 2658
|
||||
"sha256": "d2b895c6e648ffff0324dc14b9298faa8d47b55f6f5dc8675b361e9a03cd108a",
|
||||
"bytes": 2584
|
||||
},
|
||||
{
|
||||
"path": "backend/tests/test_sprint178_mol_operational_pack.py",
|
||||
@@ -2244,8 +2244,8 @@
|
||||
},
|
||||
{
|
||||
"path": "backend/tests/test_sprint66_live_workspace_smoke_polish.py",
|
||||
"sha256": "27b2abda1d14eb9e25ed5dda7ff929021e38741bdb524329360a0eed72f2e470",
|
||||
"bytes": 723
|
||||
"sha256": "052012b2963c90fbfe5886d6646369e35debf35c692f649399add78a0cc0ad7d",
|
||||
"bytes": 860
|
||||
},
|
||||
{
|
||||
"path": "backend/tests/test_sprint67_map_empty_state_quick_actions.py",
|
||||
@@ -2499,8 +2499,8 @@
|
||||
},
|
||||
{
|
||||
"path": "contracts/api/examples/area_create.geojson",
|
||||
"sha256": "2e3b437d732a057e895b15d1e1f196ee1c93b5ab2706dcee2dd2f0ddef88f493",
|
||||
"bytes": 208
|
||||
"sha256": "e383785715e19820fe68552fec4ec724fc2807d9d4059b7c382ca91a4e6c873e",
|
||||
"bytes": 200
|
||||
},
|
||||
{
|
||||
"path": "contracts/api/examples/error_feature_disabled.json",
|
||||
@@ -2537,6 +2537,61 @@
|
||||
"sha256": "db34a08cfa4e2f57f93074b16e3dad01060170d7826d854b915733dab760c856",
|
||||
"bytes": 12485
|
||||
},
|
||||
{
|
||||
"path": "docs/ASSET_PROVENANCE.md",
|
||||
"sha256": "05fa2e8423e6009aa20f3354a97bd6baa910f778885757dd221c702b71fae468",
|
||||
"bytes": 1593
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-ai-pytorch-pipeline.png",
|
||||
"sha256": "d51523428e1ab8556bb984cec17667ff952d49c78c0085c4f918bdc961a1ed76",
|
||||
"bytes": 64790
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-architecture.png",
|
||||
"sha256": "4d9c5042300dc353528d961b2d4eabb6d9122d1ace193b50477efece04a833da",
|
||||
"bytes": 68211
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-interactive-project-chain.gif",
|
||||
"sha256": "f46157c4e41c4d4b0c31f2e61238d58478de3858b3fc8cb0a2c77bd844743dff",
|
||||
"bytes": 818739
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-interactive-story.png",
|
||||
"sha256": "4df1ce6dbaeb07740e71e56eb406d73927a33fb33c4a6cf18ce24ad7efd59b48",
|
||||
"bytes": 74151
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-landing-hero.png",
|
||||
"sha256": "e3208861b92c7f79ab115069cdb9fd45a0b8bf5634d0837a90b637cde3293107",
|
||||
"bytes": 84864
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-landing-mobile.png",
|
||||
"sha256": "2dc5438850e1c52d5d148ef6a90e153325f85b8fcbc154153e393e6df8130fe4",
|
||||
"bytes": 49068
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-workbench-map.png",
|
||||
"sha256": "537e9bd8e6d8d8026ccadd25b27fae84284906810116c630c4ec0b571edfcf6f",
|
||||
"bytes": 127125
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-workbench-mobile.png",
|
||||
"sha256": "6756469329b5eae08b2a647014293785bf6f14e594ce6341df9ff66567b29fdb",
|
||||
"bytes": 36184
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-workbench-quality.png",
|
||||
"sha256": "6688f509c15d4c89746d7489f1a61db185823e018cd5a8380ace5e88e22df565",
|
||||
"bytes": 108723
|
||||
},
|
||||
{
|
||||
"path": "docs/assets/portfolio/geointel-workbench-wide.png",
|
||||
"sha256": "b8353f3bbfc9b85f396f54d1b122339e5e715e3da7335a1ae97fcfc62e696507",
|
||||
"bytes": 194448
|
||||
},
|
||||
{
|
||||
"path": "fixtures/accuracy/p4/protected-baseline-cases.json",
|
||||
"sha256": "c49a9c8d74cae2062552b012d9c275f65156c81d75b3e453860f5b859c1c5473",
|
||||
@@ -2564,13 +2619,13 @@
|
||||
},
|
||||
{
|
||||
"path": "fixtures/geojson/predicted_buildings_fixture.geojson",
|
||||
"sha256": "9c17ab96aa0a3d38e7c41b6ea997be1fbdd20742dd91a47bf6f714b280519a81",
|
||||
"bytes": 1430
|
||||
"sha256": "b25beefdae1566b79fb0e140c8a1a08c62c87ca714508ba5290a61efe3ec9113",
|
||||
"bytes": 1355
|
||||
},
|
||||
{
|
||||
"path": "fixtures/geojson/reference_buildings_fixture.geojson",
|
||||
"sha256": "3b8531317e489de0537fcdc012c414dc679fa86ae98e81f1e699844c2ee9de8a",
|
||||
"bytes": 1416
|
||||
"sha256": "6e9ce746cd7d8b7200c3d7a5db7e599ea10f8cefc2622e4321de1435074b49a7",
|
||||
"bytes": 1341
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/expected_qa_metrics.json",
|
||||
@@ -2584,48 +2639,48 @@
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/predicted_buildings.geojson",
|
||||
"sha256": "0d839e1b99dabf82c145b2596711380cb40ab09c3cf4e7e20f102044b896d695",
|
||||
"bytes": 1027
|
||||
"sha256": "6cb966306dd9537516756d59df2faf8d33f5a8b24c80ce74510b04a118ee8b78",
|
||||
"bytes": 979
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/predicted_buildings_multipolygon.geojson",
|
||||
"sha256": "66239ff17aa6b12a045fa3f50f51ffa34f833e6d23e6fc371ee40505a16ee3ae",
|
||||
"bytes": 870
|
||||
"sha256": "b30bdbf632a01774604d47a806559aeb05499559c7e57f23a0a3e042fe787ffc",
|
||||
"bytes": 832
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/predicted_buildings_no_overlap.geojson",
|
||||
"sha256": "1b013c840e4947a2ea701f34ab138de5a803dedd8519d93d373706425b5e960c",
|
||||
"bytes": 593
|
||||
"sha256": "191fb94250075084db0a9c5ce20510bf9ea249575a2cd6c22a9bfe485edab33c",
|
||||
"bytes": 566
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/predicted_buildings_perfect.geojson",
|
||||
"sha256": "fd6858ff7cab9202351f6dd3321ae5d926ce44ee73991aeaac6a760281c385b5",
|
||||
"bytes": 584
|
||||
"sha256": "8a0b43fc21e39b5a9a34220425d8a93cc802fa48e201bef0d7c31c5acadfc8e8",
|
||||
"bytes": 557
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/reference_buildings.geojson",
|
||||
"sha256": "4939bd3f70c0ecae70b4ee7ba7845f4f5d43a722cbad3685caac83944e37e152",
|
||||
"bytes": 1017
|
||||
"sha256": "f1bdc374e509e568730fa3e1f04264b57df57a4315e26121897a7e2d2acbbe20",
|
||||
"bytes": 969
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/reference_buildings_multipolygon.geojson",
|
||||
"sha256": "e386cab34cf1e8b2c56c518054a06c41fb0d868216a4d970df651f1496675b1b",
|
||||
"bytes": 876
|
||||
"sha256": "935d51d16142ee79ed51fd4f5c36ee87df9fae1ef7532646a668a758fdd29e93",
|
||||
"bytes": 838
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/reference_buildings_no_overlap.geojson",
|
||||
"sha256": "a51d08a722ed3f7dc1468021d281fbfbf1f85f53a33fd271c4c7ff039258c036",
|
||||
"bytes": 599
|
||||
"sha256": "91f1acab37fd1f896d5787c58cee0f8b443bbc67c8dd5ddecb4864ed2f7dcc02",
|
||||
"bytes": 572
|
||||
},
|
||||
{
|
||||
"path": "fixtures/golden/reference_buildings_perfect.geojson",
|
||||
"sha256": "06ed98f29d1240521a89ea64fc14502f93337e792c6ee82a5d0cd914c7a3ae3b",
|
||||
"bytes": 590
|
||||
"sha256": "c3f96e058dbe64e8b091b58a9e93ad0116669616fd71b21b9440de8a0aea32a4",
|
||||
"bytes": 563
|
||||
},
|
||||
{
|
||||
"path": "frontend/.dockerignore",
|
||||
"sha256": "e9027d6888736ab962d9c429413de11a2b2265c643c1661b945c3200f5f7a806",
|
||||
"bytes": 91
|
||||
"sha256": "d2da2be7efe5a0846fb43296ba292bc77077553ec0f157df9fa31290aac44e3c",
|
||||
"bytes": 82
|
||||
},
|
||||
{
|
||||
"path": "frontend/.gitkeep",
|
||||
@@ -2664,33 +2719,33 @@
|
||||
},
|
||||
{
|
||||
"path": "frontend/e2e/releaseJourneys.mjs",
|
||||
"sha256": "d829cf60ee0615714adf45ec351649e70eb04c8fc3c58a54b30a662c25605907",
|
||||
"bytes": 23260
|
||||
"sha256": "112620c05dfed0b44ebcbca9e97ba237b294648beb43c424f231d22b59d36b98",
|
||||
"bytes": 22762
|
||||
},
|
||||
{
|
||||
"path": "frontend/e2e/uxAudit.mjs",
|
||||
"sha256": "543540ebf4ae9d894a33219897deb50a7313b5d138fb274dee4bda7c9642989f",
|
||||
"bytes": 19631
|
||||
"sha256": "c413b76f66ee32b2198ed9b2a30ccbe1d2c73f687e15831205936303cf1b1659",
|
||||
"bytes": 19209
|
||||
},
|
||||
{
|
||||
"path": "frontend/index.html",
|
||||
"sha256": "afde0c92c72549df75ac564277963234e9900e706e34c5b1bc966d8bcf73d108",
|
||||
"bytes": 730
|
||||
"sha256": "9bd1e26d90499ca4c0bbe14a7d0df26ecce6f4cfd493724fcbeafebc2128e8ec",
|
||||
"bytes": 713
|
||||
},
|
||||
{
|
||||
"path": "frontend/nginx.conf",
|
||||
"sha256": "51b3daf714defba5761413cb77717be4acf6d682f4ad6681f246966f1cd68aa1",
|
||||
"bytes": 2838
|
||||
"sha256": "685b9e830c13aaa2a08be8420de3d3b51cb4c0780a620743160a0c043f9aa6b5",
|
||||
"bytes": 2755
|
||||
},
|
||||
{
|
||||
"path": "frontend/package-lock.json",
|
||||
"sha256": "057e7df4f11898730d3068e573f4a8f9141bc027c1dce28fc7820141babed1f2",
|
||||
"bytes": 119979
|
||||
"sha256": "bf952804817eb6725f0d6c289f5cc6eb3029f118ad5296169974b7ab85ded2d8",
|
||||
"bytes": 110543
|
||||
},
|
||||
{
|
||||
"path": "frontend/package.json",
|
||||
"sha256": "dac9052ed2ab13783c7612908010461037dfa998fd5726db18d93548e621d801",
|
||||
"bytes": 989
|
||||
"sha256": "83b9c173c13cc99c4a628913e319aa0b5cbcf21fd27d9b5c677456ba518448d2",
|
||||
"bytes": 991
|
||||
},
|
||||
{
|
||||
"path": "frontend/public/geointel-icon-180.png",
|
||||
@@ -2704,8 +2759,8 @@
|
||||
},
|
||||
{
|
||||
"path": "frontend/public/geointel-icon.svg",
|
||||
"sha256": "75bf4e80c8986369816765e3d8d9a30b40df9d16834954646e1ad6b25d5b0462",
|
||||
"bytes": 1737
|
||||
"sha256": "23bafecb7ee870025440df650500f2ac95038f5d51edabb3adc6dd783bca7d9a",
|
||||
"bytes": 1711
|
||||
},
|
||||
{
|
||||
"path": "frontend/public/itworx-wordmark.webp",
|
||||
@@ -2754,8 +2809,8 @@
|
||||
},
|
||||
{
|
||||
"path": "frontend/src/components/GeoMap.tsx",
|
||||
"sha256": "0151a302b0e06ebd2a3c4f9f9ef97c4462ab635b278a6a8ab3ff1ebd80dbfea4",
|
||||
"bytes": 25333
|
||||
"sha256": "29bd76c182f616f588074505896d8008a974827a7447a315291cad2c63588d4c",
|
||||
"bytes": 25465
|
||||
},
|
||||
{
|
||||
"path": "frontend/src/components/WorkbenchStatusStrip.test.tsx",
|
||||
@@ -3674,13 +3729,13 @@
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/data-contracts/vector-building-valid.geojson",
|
||||
"sha256": "2c3bc30b46bae04eec031037d763446af7529e32ba250c9885f755a035b12df2",
|
||||
"bytes": 486
|
||||
"sha256": "fc310197be7f4b9e21b01bf528af0ea4f418a6fa4a3d3ee1b6be9ff28b7f972c",
|
||||
"bytes": 462
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/data-contracts/vector-lambert-mislabelled-as-4326.geojson",
|
||||
"sha256": "663452ad70370b93dc9519eaf43945e1ce8355afd29378d4e374eeee03ac40dc",
|
||||
"bytes": 501
|
||||
"sha256": "21d9ff7cb6dccc5fc54c00a06f5ac9f1029de0ca2499ecd864d52821137d957f",
|
||||
"bytes": 477
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/geojson/README.md",
|
||||
@@ -3689,18 +3744,18 @@
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/geojson/aoi_geel_demo.geojson",
|
||||
"sha256": "d06a5dea8aa21666ce59864a3c9ccabe13ce3b4aa8661e8db4d025faaafb79da",
|
||||
"bytes": 288
|
||||
"sha256": "b2acab90d8a4f222c6b68b51f4ea902bfddb266a396f13cf0e384a2b176662fd",
|
||||
"bytes": 275
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/geojson/detected_buildings.geojson",
|
||||
"sha256": "87587d4e28e628bfc74bf79124e1825fe2cfb42eae1af144f5b9a7b15b2d93b1",
|
||||
"bytes": 496
|
||||
"sha256": "a3b063d2224cde8ea711d364b65b2002eedbfbb88b76bb7f912ef3ff1eb44941",
|
||||
"bytes": 489
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/geojson/reference_buildings.geojson",
|
||||
"sha256": "2a8768a0fed3b1f5f5119149b3f0d0cb2ff54d557e73615fac5d936fc44fcc00",
|
||||
"bytes": 449
|
||||
"sha256": "c70dfbb2fedef5dbc1da9f610e9b59c8f541c965e8c5a39a9ba6c9e2fd882f95",
|
||||
"bytes": 442
|
||||
},
|
||||
{
|
||||
"path": "tests/fixtures/geospatial/.gitkeep",
|
||||
|
||||
@@ -1,7 +1,65 @@
|
||||
# GeoIntel · public source
|
||||
# GeoIntel
|
||||
|
||||
GeoIntel is a GeoAI workbench for Belgium and the Belgian North Sea. This repository is the curated public source snapshot. The private canonical repository contains development history and operational material; public updates are generated from reviewed source revisions.
|
||||
<p align="center"><img src="frontend/public/geointel-icon-180.png" width="88" alt="GeoIntel icon"></p>
|
||||
<p align="center"><strong>Evidence-first geospatial analysis for Belgium and the Belgian North Sea.</strong></p>
|
||||
<p align="center"><a href="#explore-the-workbench">Workbench</a> · <a href="#what-it-does">Capabilities</a> · <a href="#quick-start">Quick start</a> · <a href="#technical-overview">Architecture</a></p>
|
||||
|
||||
The source includes a FastAPI backend, a React frontend, API contracts, tests, and synthetic geospatial fixtures. See `docker-compose.yml` and `.env.example` for local setup. AI models and external geospatial data providers must be configured separately.
|
||||
GeoIntel combines official geospatial sources, map-based analysis, computer vision, QA/QC and reproducible exports. A saved result carries its source, spatial context, model revision and review evidence. The application covers Belgium and the legally distinct Belgian North Sea zones without hiding differences between regional source datasets.
|
||||
|
||||
Licensed under [LICENSE](LICENSE). Report vulnerabilities using [SECURITY.md](SECURITY.md).
|
||||
Mol and the Kempen remain golden regression areas for the Belgium-wide workbench; they do not limit its geographic scope.
|
||||
|
||||

|
||||
|
||||
## Explore the workbench
|
||||
|
||||
The following captures use public or synthetic demonstration content. Select an official boundary or draw an area of interest, choose compatible layers, run an analysis, inspect object-level evidence, and export the reviewed result.
|
||||
|
||||
| Map workbench | Quality review |
|
||||
| --- | --- |
|
||||
|  |  |
|
||||
|
||||
The mobile workbench keeps the same analysis context on a narrow screen. [Asset provenance](docs/ASSET_PROVENANCE.md) describes these captures and project artwork.
|
||||
|
||||
<p align="center"><img src="docs/assets/portfolio/geointel-workbench-mobile.png" width="300" alt="GeoIntel mobile workbench demo"></p>
|
||||
|
||||
## What it does
|
||||
|
||||
- **Source-aware mapping:** official boundaries, vector and raster layers, orthophotos, regional and maritime sources, and explicit coverage.
|
||||
- **Spatial analysis:** coordinate-system normalization, clipping, buffering, joins and raster statistics.
|
||||
- **Governed GeoAI:** PyTorch, YOLO and SAM-compatible model workflows with immutable revisions and release gates.
|
||||
- **Quality before publication:** precision, recall, F1, IoU, false-positive and false-negative evidence, plus human review.
|
||||
- **Traceable output:** reproducible GeoJSON and artifacts linked to the selected area, input versions and model revision.
|
||||
|
||||
Model detections are reviewable proposal evidence until the relevant release gate passes. Official footprints are not assumed to be perfect image labels; temporal validity and spatial leakage are checked during training and calibration.
|
||||
|
||||
## Quick start
|
||||
|
||||
Requirements: Docker Engine with Compose. From the repository root:
|
||||
|
||||
```bash
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Open <http://localhost:1202>. The development stack uses Python 3.11+, Node 20.19+ or 22.12+, and PostgreSQL/PostGIS. Set `GEOINTEL_AUTH_ENABLED=true` and explicitly opt in with `GEOINTEL_GUEST_ACCESS_ENABLED=true` only for a dedicated public-data demo. Guest sessions are short-lived and project-bound; administration and uploads remain restricted.
|
||||
|
||||
## Technical overview
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
Web[React, TypeScript and MapLibre] --> API[FastAPI]
|
||||
API --> GIS[GeoPandas, Shapely and Rasterio]
|
||||
API --> Jobs[PostgreSQL job queue]
|
||||
Jobs --> AI[PyTorch inference]
|
||||
GIS --> DB[(PostgreSQL and PostGIS)]
|
||||
AI --> DB
|
||||
DB --> QA[QA and provenance]
|
||||
QA --> Web
|
||||
```
|
||||
|
||||
Configured AI inference can use NVIDIA/CUDA and fails closed when a required accelerator is unavailable. A deployment needs persistent PostGIS and artifact storage, authentication, HTTPS, health checks, backups and a tested restore path. Do not place private model weights, credentials or operational exports in this repository.
|
||||
|
||||
For source checks, run `python -m compileall backend/app`, the backend pytest suite, and the frontend typecheck, unit tests and build. `backend/` contains the API and spatial workflows; `frontend/` contains the UI; `contracts/` contains shared interfaces; `fixtures/` contains safe examples.
|
||||
|
||||
## Public-source provenance
|
||||
|
||||
This is a reviewed content-only export from a private canonical repository. `PUBLIC_SOURCE_MANIFEST.json` records the source revision and hashes; private Git history is absent. GeoIntel is licensed under [Apache 2.0](LICENSE). See [SECURITY.md](SECURITY.md) for vulnerability reporting.
|
||||
@@ -17,7 +17,7 @@ dependencies = [
|
||||
"pyproj>=3.6.1",
|
||||
"python-multipart>=0.0.9",
|
||||
"itsdangerous>=2.2.0",
|
||||
"PyJWT[crypto]>=2.10.1",
|
||||
"PyJWT[crypto]>=2.14.0",
|
||||
"rdflib>=7.1,<8",
|
||||
"alembic>=1.13.2",
|
||||
]
|
||||
@@ -39,7 +39,7 @@ ai = [
|
||||
"ultralytics>=8.3,<9",
|
||||
"torch>=2.4",
|
||||
]
|
||||
dev = ["pytest>=8.3.2", "httpx>=0.27.0", "httpx2>=2.0.0", "ruff>=0.6.9"]
|
||||
dev = ["pytest>=8.3.2", "httpx>=0.27.0", "httpx2>=2.0.0", "requests>=2.34.2", "ruff>=0.6.9"]
|
||||
|
||||
[project.scripts]
|
||||
geointel-backend = "app.main:main"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pip-compile --extra=dev --extra=gis --generate-hashes --no-index --output-file=requirements-ci.lock --strip-extras pyproject.toml
|
||||
#
|
||||
# geointel-input-sha256: e1dd11f5b30f4c8c902f33476282da48da386d36093cab68212edc69e75df8e3
|
||||
# geointel-input-sha256: 6a94d4ca9742284c1999971e00877b765d987c551b536fd1e15c146a8626f292
|
||||
affine==2.4.0 \
|
||||
--hash=sha256:8a3df80e2b2378aef598a83c1392efd47967afec4242021a0b06b4c7cbc61a92 \
|
||||
--hash=sha256:a24d818d6a836c131976d22f8c27b8d3ca32d0af64c1d8d29deb7bafa4da1eea
|
||||
@@ -42,6 +42,7 @@ certifi==2026.6.17 \
|
||||
# pyogrio
|
||||
# pyproj
|
||||
# rasterio
|
||||
# requests
|
||||
cffi==2.1.1 \
|
||||
--hash=sha256:046bfc24911b37851ee1b51aab8bffe713d89c68c6a057b09484ce9fd5f69b4e \
|
||||
--hash=sha256:06c72bb76605a4b0cd0aad6930b69d4baf7dd5d806cfc409b824191099700e66 \
|
||||
@@ -144,6 +145,180 @@ cffi==2.1.1 \
|
||||
--hash=sha256:fb92203a88b3d3053034db775110081c49d28be6551923805e039924093761e4 \
|
||||
--hash=sha256:fcd22650c908d7b7da162bbfaab594a1227a15d1643a98c68b122ac642fa2264
|
||||
# via cryptography
|
||||
charset-normalizer==3.5.2 \
|
||||
--hash=sha256:01077390b03f7988f11d700a2194e69b119741a86b1a638b1db88891e3eced8e \
|
||||
--hash=sha256:01b0c0d2262a9e28e8484a278c7e1b5d650e3ac8cf2683d2967e25899f208bdf \
|
||||
--hash=sha256:04851f73ae72b8413dddadb16a49dfee95263553741fd42d546f7d66907e6be5 \
|
||||
--hash=sha256:0521c5665880b33d603717defa76c094048900010897909952397feb3039da56 \
|
||||
--hash=sha256:0774bf9bf620249fee3e0b8b9fd3065de213be30f3aa94ce2494b3b638949e26 \
|
||||
--hash=sha256:0891b9d3903c5571c03771ca669a4b0ec5618ca722a5c957d3d29cd4e5062848 \
|
||||
--hash=sha256:0c951d5e6dd9c2ff60609476752bee49da4206adde960ebc247766937f72e718 \
|
||||
--hash=sha256:0fed1d06615f022ee3b13caf5e8b180cfea32bb2c5aded8a9d44277afc040f93 \
|
||||
--hash=sha256:114e4d0c92d618409ed82a99e22b5c5e768fe995f2973f78265f4524f49d4640 \
|
||||
--hash=sha256:11912e4bb14baae7c5d8791aa55ba0a3a03ec6729073307b0f57270abaa713d3 \
|
||||
--hash=sha256:11a4d68a6ecda3292cb1e50239e111543ba5d709bb62a6b4ea1afcfa729d8875 \
|
||||
--hash=sha256:124fbf1a8ff966d87ae05bb8bd45a71f966055ed8bba320d0c7cf450bc5f4d0e \
|
||||
--hash=sha256:1461ac396c4fdb983a675f20aa555624f0ee18ac83d832b9244ffff3d8055275 \
|
||||
--hash=sha256:1503bccbeb36d5527790c3930327704c39af22de3112f1b1666a9f3ce15ee204 \
|
||||
--hash=sha256:15bb4005af6320d259dc7593ca84a38d7fe06a421dbcf7b910ae23979101e787 \
|
||||
--hash=sha256:15c44f7edfd477b06f517a5cc317fc1707edb9de2c865f43d4b6513907473234 \
|
||||
--hash=sha256:16fa0eccf81304b79c5cd87f9271c3b85dd9dd99245e4422ae9c0dd45e0f99d3 \
|
||||
--hash=sha256:183b88127acdb4fabe59d951ab424faf1af7b63cdbb5f776186c1ea2ffcaed98 \
|
||||
--hash=sha256:195c26fb65950f8fce54e26349852b7bdd7c5f120aeefbcc440b8a20faaed4a3 \
|
||||
--hash=sha256:1afb975bd5d68d5ce9f6b6d44fdf2f7e34b895a35e95708a7a91b20a3b51d187 \
|
||||
--hash=sha256:1b4cbc7c3491ccb4aa17fcd8165649d01cf39f76de1696da8631b5f71b85401d \
|
||||
--hash=sha256:1bc0baf5ef96b6ede57d47f4b8fe4d9d84019c3bfcbeb20a41edc6a6ee341f1f \
|
||||
--hash=sha256:1c50fe28bbc2ced33386f298650d91218076c05420e6cbd790b913adc41659e7 \
|
||||
--hash=sha256:1db38f4c5496827c1a501846d64d14c3b80c7e6714e406cd7dc36a9899fa1011 \
|
||||
--hash=sha256:211d5a3eb6af8f513b8d4ca19a8c1b7accab1b5f0d3175f9826b03c1a920dc1f \
|
||||
--hash=sha256:23851fb4e1b85ed3f6c2a27b777cdfe2e19fb5b38429a8faf38c7542b7665869 \
|
||||
--hash=sha256:254eb48b9fa5ee9898a3c445825a1f340fe53712a098904b39b0bddba8ea3cb1 \
|
||||
--hash=sha256:2625388c6c754520c37abaf3b41eb34d1cc4a373f457898f08606c8e362b891d \
|
||||
--hash=sha256:281cb91036248400f4cc957495cccd44c275c2e0c5854f7e45ac5cf7dc193847 \
|
||||
--hash=sha256:28a15fdad492a99b6eccfaaed66ef3f74050680545ea61ec8b2f4c538f1f1320 \
|
||||
--hash=sha256:28b4f0d66fb834ff90f28209ac7bce77868c45d8c93e26f906709d9b7c2e1af9 \
|
||||
--hash=sha256:2a925889534b3748302dae5dead07cc13480de1dac3aea80a941b729b471ef93 \
|
||||
--hash=sha256:2b7b3bbfb4fe8ef40600792d762fbaa9057559f9d3fad209525b7a22b99e91fd \
|
||||
--hash=sha256:2c9ad19a6cfcd5ea5c0d41161d22f9df1dcc277e9bef2751391334546a314c00 \
|
||||
--hash=sha256:2cc961b171b3f3440f410489ab3573e86aea8736134ebbb40ea1338b7f0831bc \
|
||||
--hash=sha256:2ce45c6627b22c47e390bc91a41c3d13032192e699fa0bea96e9671b373d69b0 \
|
||||
--hash=sha256:2e06a3a98f916dd41d27f3105e02e7a40181c98c94b9158733d03a6f80506c09 \
|
||||
--hash=sha256:304d5463e65a35d7bb0850550e0780395395f6fcf452f04db7d5ca7cecc425ac \
|
||||
--hash=sha256:304d8e4d493af723536393eee0c689eb7813f4a474c8b479dee63f1fdd98f621 \
|
||||
--hash=sha256:30fcd120b732aa79317f08dee04d7de0847822e4cf7ee0e9f445bb958832252c \
|
||||
--hash=sha256:31f3930700408d211f13378ccbe1c40845d8da54bd0681fac3a9b5aae81c7aa8 \
|
||||
--hash=sha256:34276fd796040bf0993ab33a369aa572e6979c7aab225a88893667ad8eac8f7a \
|
||||
--hash=sha256:355ad8011081dec5412240c087a9a0c9d4d5039f3ed11a3f13e18c2b29b56c51 \
|
||||
--hash=sha256:38a873987f3be698494da8b2e3085e29da02da7b633dce73e79c699a113d7bf0 \
|
||||
--hash=sha256:39de2a259fc954455c57274dc94c79d5842774e1247a016aff30bc0efed0f4ef \
|
||||
--hash=sha256:3d14b50de6bf4d0edf857a9386836846f982b8f524e188e2e68b96d702bcf4aa \
|
||||
--hash=sha256:3d21b8b13c7592db2ac5e544a6d83187b995257472b0c9e8351b6d507ae37ed6 \
|
||||
--hash=sha256:3d31298449090ab8d47b7b1b2a555ff73cac7ed438a08b7ac160980c7ebed649 \
|
||||
--hash=sha256:3ddacd27458c45bdacd6bd6db644bfb730efbf9e830310186e3045c9c5be8fb2 \
|
||||
--hash=sha256:3df041de8887954562c9b261cba85ca0e9ded74048daf125f45edcfaa4832229 \
|
||||
--hash=sha256:40ab6bffa02ae10a0581e6c198be7d2d8ca5c2a0c64e4ed3465d766df457573e \
|
||||
--hash=sha256:4275811936e2f06feff5e598fb42a1b7ae852da8e39605211892b56b81a34efd \
|
||||
--hash=sha256:443eae2bf318abeaf6f15d785138f71fd6de770e99a92158b8b814265e079115 \
|
||||
--hash=sha256:447441e76ec720b15e64418d32e092297340387053047c7c694f579efb0ee1d9 \
|
||||
--hash=sha256:4495c5002a7b28557e7e222e77e0b661183e432b7d6d2e788101e3f240e05b8c \
|
||||
--hash=sha256:44bd4fbb29dfbeba60e7d2bd000c59e4b21ddb3cc53912b14048d37092706d7c \
|
||||
--hash=sha256:4685902cf26edf013ed7a3da0f426ebba7a00ebb9541386d835afbf002c11cab \
|
||||
--hash=sha256:498dc3188ca05a68231ac3fdbfc7f57eb67e1343c30e0fea17f8218c1599b253 \
|
||||
--hash=sha256:4c2b5031f63e331e3839b40aed2dd6f191e9c07edbde303e7876846ea1946995 \
|
||||
--hash=sha256:4d48f2d08b9de5864e2c8744d4461b862fb149a18274abc8b698c45975573438 \
|
||||
--hash=sha256:4f87960d57feabfb618e4e0af6e7371645fa26a277860739d6e5d6e0012c92f0 \
|
||||
--hash=sha256:50e3adfb96fc189eb27b1cf62d3b598b89b4bb0420d93a3d3e42e137409011be \
|
||||
--hash=sha256:51cf45226a9b588d0d2b4880c62d686934b63ab0bd79ca23ab0e9762eb27441b \
|
||||
--hash=sha256:52aa6992700996af31f375de0c6bacd402b0097fe40b53c426b9f51a90ebabc7 \
|
||||
--hash=sha256:55ea99acb17b9325618de155a0cd6a2e8f5d10be008113e1d433bbb58db543b2 \
|
||||
--hash=sha256:56bc200a365efb37383b7852e4cc5898d3b2da5987289b543956cf8cad71018a \
|
||||
--hash=sha256:588461c2e8384d309bd63e5826019b6977bc66d629b99ac8737bb795d7b2cb5a \
|
||||
--hash=sha256:58ca3755ee7ff7f59b57789ec9833c9de9ea275405cdd240eda1f193112e398a \
|
||||
--hash=sha256:58f361dcbab699cf8f42db3f47c8e7fd1036f138c23a5d08de9fde5f425a730c \
|
||||
--hash=sha256:598a11a2c7ebaa5334bf698bf29568c9c390abac6a154d8170fedecd1cea38c5 \
|
||||
--hash=sha256:59f63901b0031c3136cf64704dcb21de0bbae62ce2c9529bc39d27665463de37 \
|
||||
--hash=sha256:5cde776b7cc66e4f6c99612cea4aa7269aa65863f7a15841b2c264f103822f4e \
|
||||
--hash=sha256:5e2b6b57e9733d39f0c9fd3185efa6b8e29652c4cd8fe94180272cf6ed9a78c4 \
|
||||
--hash=sha256:5fb29fb8cd1a46c27a1bf9613ad5ec2599310d46b4025d9556404a6b6a292800 \
|
||||
--hash=sha256:6045373d5a89a5ec71afde535db987ca28e76dfa276c2d4c818265b375d4b055 \
|
||||
--hash=sha256:619799369eeef6366ed3e8755a5670f4f2f0fb6b30a0fd7264dc0fdc2357058e \
|
||||
--hash=sha256:62588a277bfb59def052abd940703fa35107152bf479781a878617d60faf8fb5 \
|
||||
--hash=sha256:62603db9a7caa0802eaa28c1c46fecd7b3a263a774069c24c3c28c302448721c \
|
||||
--hash=sha256:65cd72beeeca9d3aaea1201e5923859f308f952f9c71de93f06063c79f0f7a3b \
|
||||
--hash=sha256:68eb192d85ab8e5f6ec69c2bc6ac0179fbf04a5ac1569d12fbef74883fe102d0 \
|
||||
--hash=sha256:6bd128f206a7752ae1f2ab6c61bf8a24ba28913a10df8b14c2637b973ff97a80 \
|
||||
--hash=sha256:6be488a102b8cf28d0391d8c4ba7748938ae28b78ad901f8585520fca33ead1a \
|
||||
--hash=sha256:7218e8f32b0956cfcd048fd42d9d5779809745ca1d86113ca56f66e7ae1549c4 \
|
||||
--hash=sha256:7441d755b7ab94f8d4eb3e43ec05482d760842fd263d003a99102d742cd835e2 \
|
||||
--hash=sha256:749e97e1b32313717a565abbe321bc2190bc8b35f1a67e4cdbc7c56c8d8ffe58 \
|
||||
--hash=sha256:75a3ceed0724d625d64b86ca20aba182e4df462e04c2414fc941c0f523f06aac \
|
||||
--hash=sha256:780fbe7cab297b81dad9fb8dc5eb003c0468ffb0d9e5f65068c53a34661a96bc \
|
||||
--hash=sha256:78456a747de8dc58360ffa581f30a002baf5aa28cb262536545e91f113ed7639 \
|
||||
--hash=sha256:7967d08cf06dee78443b874f98c98036f624f3a4e73e11f9f64f5be4d25393cf \
|
||||
--hash=sha256:7a881931aa470808df94a8c380eed2bbbc76cd9dc622310f99665658c821eb6d \
|
||||
--hash=sha256:7dcd882da75ef9adf94903b1e3b9419e8aa8fb4c7396822b834b9ef7fb96954f \
|
||||
--hash=sha256:7e841fb9010836c992c9f12fcbd43a831de93a5f726fc1ccd8ca1d0268c5014c \
|
||||
--hash=sha256:7fdde2c9fd9e3eca40631e024664cf2584272cc8f96308cbe5fdfc930f51d8bc \
|
||||
--hash=sha256:8024d00c3faf3fc0c16e07a69f4405e8eac7cc0ab15f65fe6cf43827c4cf72b4 \
|
||||
--hash=sha256:80d02b6f04e92601a081dd97b23d3128033098bff5d35d392ddcc0476ea11253 \
|
||||
--hash=sha256:838dcc90063569a0448120554591a1d6c4a4ffe11babf048908793154ab86ade \
|
||||
--hash=sha256:849df64e889b2e17230d58410a03dba311a65b163508fd33679b2b737d4b7858 \
|
||||
--hash=sha256:87475fabc8d9996fd9c27debb395e642e8c838d78a00b6e932227a0e06b81e26 \
|
||||
--hash=sha256:87e50a3e7cb90af586b6c5faf23e302a970415ac73bd7bd90a515a04b427ef96 \
|
||||
--hash=sha256:89b53f3cda69831909888e0494f4fa0bcd3537e3e138dabeb620bd6ad946bae8 \
|
||||
--hash=sha256:8a893cc101149f80a653f82062ebc95b34525a2614382e1da5458fe7c6997249 \
|
||||
--hash=sha256:8b2bfab86aa71ae13aa41a6a26aab338e0db2b8bc75434b05aea89e011ff35a4 \
|
||||
--hash=sha256:8d86d6fc60743dc916eb79e2eb1ec4818e21e427731543af40a3021851174a13 \
|
||||
--hash=sha256:915563965d418f986e7e145accc592eae9e1a1be3566ff98a05d7a9ec42a76e1 \
|
||||
--hash=sha256:92888bb3187c5ba50500b00b3b310c9f2c651709d28036077680cb5255450a03 \
|
||||
--hash=sha256:93223adc95033dd47133a46ccfc316a0139176fd79085762e27202ec56018f03 \
|
||||
--hash=sha256:9373ad13ef0d2c0fb761e04e55bfdee5a08b52cef2c882c8fbe9935b1517152e \
|
||||
--hash=sha256:9409a8bf35cf78353942504b24a57de3d75b708997a1e4bd8db71ac8633ce364 \
|
||||
--hash=sha256:9b7f416ff0978e2f2249330527f0ad6fa02f4932e6199692d3b52da2048c19e4 \
|
||||
--hash=sha256:9bde855991b7e362c146535e3136a50bfaffc0487d38b33ca7e5edefc6e23849 \
|
||||
--hash=sha256:9cae88599c7219005d879f98e5ed53341e9a122af585e1091200358a3003d2a0 \
|
||||
--hash=sha256:9cf9b1a857e25c4baceeb3624e92a56df3668f398c4acba74e174d81fb4d1d3a \
|
||||
--hash=sha256:9f56f72050826f63dcee7a7f55b0a77168cb3bfc553fd405e7f8f9ece75a4036 \
|
||||
--hash=sha256:a090bb2c68df85450502e3e20d665e3a5af9c65a84d6508ed477badd49166fd3 \
|
||||
--hash=sha256:a192e2c40070d92c3ccf777e3a5c4ff515573cd2bb7ed0c537fdadbbec5bbf21 \
|
||||
--hash=sha256:a19a731138fc27d5682277d3b9df22855cea1239bce7fcec5f78f42ef2d1f3c3 \
|
||||
--hash=sha256:a66c3bc5ab1f0ff2164fc9965ddd611ff0802173f4b9d24554c563f6ab7e1d6e \
|
||||
--hash=sha256:a815775b6c38d4e0ff7bcffbeba67feded90202bb6a226b8dd35f1c855217413 \
|
||||
--hash=sha256:a89012d6d5476ee112d20d998570ed58df2260a852afb1758809cd6900411d21 \
|
||||
--hash=sha256:ae4f5fea5b8b8ccff88238cc8569303e5ee95efae67fa62922a311397a71f346 \
|
||||
--hash=sha256:b6856554c4f44d79fc2307d5768854310a8f0096e501c75637542c82292b0429 \
|
||||
--hash=sha256:b6b751274acb69d77b3323d6b7dbaa3c7fdfc1eb829b7eb61d262f32e1af9685 \
|
||||
--hash=sha256:b736353c0a625bbd5fcec108576e2385db3496f4f771f785ff32e108d3c3bc45 \
|
||||
--hash=sha256:b7fd005a73d9e657273b7a10dc71a9e03c8fb9ee6999798d6918ce095b81ac7f \
|
||||
--hash=sha256:b91363207bd9dc966a691e959bb47f64b30f7ac4b072be9968b366982f7db77c \
|
||||
--hash=sha256:ba0b1d2620edf869789c3879223f52bf2afc5d31b3cb47cc57b3a12c05e2aa9d \
|
||||
--hash=sha256:bbbfc8e28816f19d7c0f1816664980c0a9875d01b27cdf8eedddb639d9e108ad \
|
||||
--hash=sha256:bd16aabe4a02a297c23417aa17ac6299dbd8c49f673bcd645b4929b11f5a4400 \
|
||||
--hash=sha256:c0afc6800ba57ccc350374c5bd6150419915d95ce93cdbab2d783d75eaf30ecb \
|
||||
--hash=sha256:c6708715abcf3c73b99508253e961a9967f02fe536532834149574eda6de0d1c \
|
||||
--hash=sha256:c7c9ab723cde841fefb34efbad91e87f00a674b1fe1cd0784fde742bf2c154dc \
|
||||
--hash=sha256:c8f3d67aeaf55f017982b73683f0e7342ba2f6635a78f69ce89ebb26aa411e5c \
|
||||
--hash=sha256:c9790464842f85f437dbbb54417eda1e0e6bfc52dd8d22d6fd1c994b73b2dc74 \
|
||||
--hash=sha256:ca403d7e4798f525fdfc78e258820419cbbd0f0ecbab9de7840e3c017cf6b8cf \
|
||||
--hash=sha256:d008d90a7f2471519aef0c90dfbe73b3e6e4d5e66ac48e19154c17e89e98b604 \
|
||||
--hash=sha256:d19fbd981a488e22cd04883659ca6b08f50b5974f9fd7c95655ef6a043e5893f \
|
||||
--hash=sha256:d1befeed746d247c81127bb14de9dc3d30edb6e5976d34f83f86ed262b1d9105 \
|
||||
--hash=sha256:d2374b62878abb00cd8309b32af6c0b715cd02dec0ca74ef12e5069bdc64144a \
|
||||
--hash=sha256:d376bbd28b3a8999db1a103b3b388aee6f1ddeb3e51bc2172993efdcd86e064d \
|
||||
--hash=sha256:d4a7319f304a774bed22115bc891618e45f85065ab44ea6acd07d274e750519a \
|
||||
--hash=sha256:d6734d2ef8a50fbf8445c139477da401f50d62a0606bf00e20ec6d87773fefb1 \
|
||||
--hash=sha256:d760fe2a4d7c3b226cb9026d6a842868d52a7901bd98420e1baf14e80da85cf5 \
|
||||
--hash=sha256:d913de495d90407cd859d263bee2e5d1a4ed3eb6573c04e70d9ec619a7cbed7f \
|
||||
--hash=sha256:db19d07e2e0129e974a0e65d0064fc222a446cd5122c2fd4184d2af9fc734a9e \
|
||||
--hash=sha256:dca9ab98072a5a54ebacebdc45f53e645336b320c667410b061be1ca588ae709 \
|
||||
--hash=sha256:ddc7dacc8ece3a182e7f15cb862d1fd616b46d076cb1ae9dd232b2c38b655874 \
|
||||
--hash=sha256:ddf19c062bea7a0cc80f519243d2c01dd091be0cf952a0750d4ad576709559f5 \
|
||||
--hash=sha256:def79fa35ef0cef8d2accec024f4fdc7ead3012ff02f5215c783f39f03ef8cfc \
|
||||
--hash=sha256:df29a0a7107f7011e77f4eebdddec4c7331e24d787a0b21a46d63bdf7445da95 \
|
||||
--hash=sha256:e09a3942ecbdee5cce73ea9d42da82b81b72ac1bf031ce069b93b5adf4eac8cd \
|
||||
--hash=sha256:e242bb1c5e76e97dfa9e7f209a71e93a01d7f19ffdd5cfbb2e2d55b4f08f8ab0 \
|
||||
--hash=sha256:e243bd13217235fc7290c621941c3f5cc8b66e4872495be821d7436ba2fb838d \
|
||||
--hash=sha256:e2af3aad578aa6bd1384bcf4750fc285e5a9de53f40b7d41e5a0bf748edeb2b3 \
|
||||
--hash=sha256:e4e81e09c1578b8df602e3db08b0b3ea0a6947ad612f52bf8dc5ea8d47691f0c \
|
||||
--hash=sha256:e54da4baf05720032d527874d40b65fa4d7e5c6c6a43d0c3adbeffcaf275a2b3 \
|
||||
--hash=sha256:e80e6c2f55656b4824d72065abb4ddd6a525c74bd78a0aab5d9fc2cf4fb5af50 \
|
||||
--hash=sha256:ed2a239c0ea213acc1908150a3037257083c7c083128f1a4cec2ec4b97dca491 \
|
||||
--hash=sha256:ed905975ab14056a2e5eb1c376cb2e1ebc5396baf84163939c518556fccde9f5 \
|
||||
--hash=sha256:ee21e28f0430bd6dc9086c6e525d5e818a44a5ad19720c8a0ef766792f3eb5e5 \
|
||||
--hash=sha256:ee43c17b173d46a3212baa6ead3ae258eeabdae48c263a01ccf0218c366dd655 \
|
||||
--hash=sha256:ef4fcbf3327382cd4c9f540babd61248208af7b93eec4de397b4d5f58a09e288 \
|
||||
--hash=sha256:eff0ac9dbe711a4aee69bf04a83896aa9b85f19641264053a9f6d48573abb7dd \
|
||||
--hash=sha256:f0aa869112ef88429ae17820d99c3dd9504c9e9c671d3c246f3d7442cb051084 \
|
||||
--hash=sha256:f3c96f633825733f735c5a9cf21d21a257d8e1edf0b1cee0a064b9c424ca0f7d \
|
||||
--hash=sha256:f5833ad231be5eb6553de524a70f48d71b2c8563101750531e0b80184e175cd4 \
|
||||
--hash=sha256:f5ec61164adcec446f8969a3358ec3f9b26bbda3b9213e5586d219afa8df2915 \
|
||||
--hash=sha256:f7d486c83842422badd511868fd8a9a20e9407ace71564b6af47ce7e60a336c1 \
|
||||
--hash=sha256:fb9e68df06293761f9fe66ade60a9bc6d0f5e42b8acf2939a9158af86ab0e5bd \
|
||||
--hash=sha256:fc14a032f813bf5fe624d991960ea83e9715adc27e4c1830a2361eb1d02ac341 \
|
||||
--hash=sha256:fcff63213e8e6e47770541a4607175404f47cbb3ebea7b6058cc82d524a0e424 \
|
||||
--hash=sha256:fd1fbe0f116b6e55da77aca2c6ddcddcfac2186cbf78bdebf40fc156efca389d \
|
||||
--hash=sha256:fe9753dfee015c570d73df76f899f18444d41388bffcde097deba51c4fadbb9f
|
||||
# via requests
|
||||
click==8.4.2 \
|
||||
--hash=sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6 \
|
||||
--hash=sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76
|
||||
@@ -383,6 +558,7 @@ idna==3.18 \
|
||||
# anyio
|
||||
# httpx
|
||||
# httpx2
|
||||
# requests
|
||||
iniconfig==2.3.0 \
|
||||
--hash=sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730 \
|
||||
--hash=sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12
|
||||
@@ -919,9 +1095,9 @@ pygments==2.20.0 \
|
||||
--hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \
|
||||
--hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176
|
||||
# via pytest
|
||||
pyjwt==2.13.0 \
|
||||
--hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \
|
||||
--hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728
|
||||
pyjwt==2.14.0 \
|
||||
--hash=sha256:77283c83fb56ecf566a886c757a714bc83668e38156de2cce8263302f42e0b86 \
|
||||
--hash=sha256:ad0cef71c756a56e74863c2919cf0985f72decbcfcb550ee2f422e7c62b5eedc
|
||||
# via
|
||||
# geointel-backend (pyproject.toml)
|
||||
# pyjwt
|
||||
@@ -1154,6 +1330,10 @@ rdflib==7.6.0 \
|
||||
--hash=sha256:30c0a3ebf4c0e09215f066be7246794b6492e054e782d7ac2a34c9f70a15e0dd \
|
||||
--hash=sha256:6c831288d5e4a5a7ece85d0ccde9877d512a3d0f02d7c06455d00d6d0ea379df
|
||||
# via geointel-backend (pyproject.toml)
|
||||
requests==2.34.2 \
|
||||
--hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \
|
||||
--hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed
|
||||
# via geointel-backend (pyproject.toml)
|
||||
ruff==0.15.22 \
|
||||
--hash=sha256:11c1c715af53a09f714e011106bffc419751ec8232fcb5da42173284ea3fec6f \
|
||||
--hash=sha256:1877d63b9d24ed278744f1523fd11b85540566d54641f97c566d7d9dc5ca5296 \
|
||||
@@ -1335,6 +1515,10 @@ typing-inspection==0.4.2 \
|
||||
# fastapi
|
||||
# pydantic
|
||||
# pydantic-settings
|
||||
urllib3==2.8.0 \
|
||||
--hash=sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3 \
|
||||
--hash=sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63
|
||||
# via requests
|
||||
uvicorn==0.51.0 \
|
||||
--hash=sha256:5d38af6cd620f2ae3849fb44fd4879e0890aa1febe8d47eb355fb45d93fe6a5b \
|
||||
--hash=sha256:f6f4b69b657c312f516dd2d268ab9ae6f254b11e4bac504f37b2ab58b24dd0b0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# pip-compile --extra=gis --generate-hashes --no-index --output-file=requirements-runtime.lock --strip-extras pyproject.toml
|
||||
#
|
||||
# geointel-input-sha256: 30318170074aad9b91f570cccc574eaaad0eded5814a464d1207a94d2e1d3317
|
||||
# geointel-input-sha256: 2e1bf366b76c576b2d17fba2a7841e4442a7480528fe0329a4c784401a4c5c8e
|
||||
affine==2.4.0 \
|
||||
--hash=sha256:8a3df80e2b2378aef598a83c1392efd47967afec4242021a0b06b4c7cbc61a92 \
|
||||
--hash=sha256:a24d818d6a836c131976d22f8c27b8d3ca32d0af64c1d8d29deb7bafa4da1eea
|
||||
@@ -880,9 +880,9 @@ pydantic-settings==2.14.2 \
|
||||
--hash=sha256:a20c97b37910b6550d5ea50fbcc2d4187defe58cd57070b73863d069419c9440 \
|
||||
--hash=sha256:c19dd64b19097f1de80184f0cc7b0272a13ae6e170cbf240a3e27e381ed14a5f
|
||||
# via geointel-backend (pyproject.toml)
|
||||
pyjwt==2.13.0 \
|
||||
--hash=sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423 \
|
||||
--hash=sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728
|
||||
pyjwt==2.14.0 \
|
||||
--hash=sha256:77283c83fb56ecf566a886c757a714bc83668e38156de2cce8263302f42e0b86 \
|
||||
--hash=sha256:ad0cef71c756a56e74863c2919cf0985f72decbcfcb550ee2f422e7c62b5eedc
|
||||
# via
|
||||
# geointel-backend (pyproject.toml)
|
||||
# pyjwt
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from pathlib import Path
|
||||
from tests.frontend_contract import read_feature
|
||||
|
||||
from tests.frontend_contract import read_feature
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
@@ -53,8 +53,7 @@ def test_product_docs_record_national_scope_and_mol_regression_focus() -> None:
|
||||
readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
||||
vision = (ROOT / "docs" / "PRODUCT_VISION.md").read_text(encoding="utf-8")
|
||||
|
||||
# The README is Dutch; assert the two claims it must make, not one phrasing.
|
||||
assert "Belgische Noordzee" in readme
|
||||
assert "Mol en de Kempen" in readme and "regressiegebieden" in readme
|
||||
assert "Belgian North Sea" in readme
|
||||
assert "Mol and the Kempen" in readme and "golden regression areas" in readme
|
||||
assert "Belgie en de Belgische Noordzee" in vision
|
||||
assert "Mol en de Kempen blijven gouden regressiegebieden" in vision
|
||||
@@ -1,6 +1,5 @@
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
@@ -14,8 +13,9 @@ def test_export_handoff_cards_use_width_aware_grid() -> None:
|
||||
|
||||
|
||||
def test_public_readme_documents_desktop_and_mobile_workspace() -> None:
|
||||
readme = (ROOT / "README.md").read_text(encoding="utf-8")
|
||||
|
||||
assert "geointel-workbench-wide.png" in readme
|
||||
for path in (ROOT / "README.md", ROOT / "public-source" / "README.md"):
|
||||
readme = path.read_text(encoding="utf-8")
|
||||
assert "geointel-workbench-map.png" in readme
|
||||
assert "geointel-workbench-quality.png" in readme
|
||||
assert "geointel-workbench-mobile.png" in readme
|
||||
assert "Mobiele werkruimte" in readme
|
||||
assert "mobile workbench" in readme.lower()
|
||||
@@ -0,0 +1,32 @@
|
||||
# Asset provenance and redistribution
|
||||
|
||||
The visual files distributed with GeoIntel were created for this project and
|
||||
are released by the repository owner with the source under Apache-2.0. They do
|
||||
not include private operator data, proprietary model weights, unpublished
|
||||
imagery, or a bundled third-party geospatial dataset.
|
||||
|
||||
## Project artwork
|
||||
|
||||
The original PNG masters in `frontend/design-assets/portfolio/` and their
|
||||
optimized WebP derivatives in `frontend/public/portfolio/` are project artwork.
|
||||
The WebP files are mechanical resizes of the corresponding masters; the
|
||||
reproduction command is documented in `frontend/design-assets/README.md`.
|
||||
|
||||
## Product captures and generated documents
|
||||
|
||||
Files in `docs/assets/portfolio/` are captures or diagrams of the GeoIntel
|
||||
public-demo interface using synthetic/public demonstration content. The case
|
||||
study at `output/pdf/geointel-case-study.pdf` is generated from repository
|
||||
sources by `scripts/create_portfolio_case_study.py`.
|
||||
|
||||
Any provider name, logo, map attribution, or dataset title visible inside a
|
||||
capture remains the property of its respective owner and is included only to
|
||||
identify the source or reproduce the application's attribution UI. This
|
||||
repository does not relicense or redistribute the underlying provider data.
|
||||
|
||||
## Integrity
|
||||
|
||||
Release review verifies these paths through the repository's normal Git object
|
||||
hashes and the public-release gate. Regenerated derivatives must come from a
|
||||
tracked master or reproducible repository source; do not replace them with
|
||||
unlicensed stock material, private screenshots, or local operator exports.
|
||||
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 800 KiB |
|
After Width: | Height: | Size: 72 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 190 KiB |
@@ -22,7 +22,7 @@
|
||||
"@fontsource/manrope": "^5.3.0",
|
||||
"@fontsource/public-sans": "^5.3.0",
|
||||
"lucide-react": "^1.25.0",
|
||||
"maplibre-gl": "^4.7.1",
|
||||
"maplibre-gl": "^6.11.2",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
},
|
||||
@@ -35,6 +35,6 @@
|
||||
"playwright": "^1.61.1",
|
||||
"typescript": "^5.5.4",
|
||||
"vite": "^7.3.6",
|
||||
"vitest": "^3.2.6"
|
||||
"vitest": "^4.1.11"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,6 @@
|
||||
import { useEffect, useRef, useState } from 'react'
|
||||
import maplibregl from 'maplibre-gl'
|
||||
import * as maplibregl from 'maplibre-gl'
|
||||
import maplibreWorkerUrl from 'maplibre-gl/dist/maplibre-gl-worker.mjs?worker&url'
|
||||
import type { ExpressionSpecification } from '@maplibre/maplibre-gl-style-spec'
|
||||
import 'maplibre-gl/dist/maplibre-gl.css'
|
||||
import { NATIONAL_MAP_CENTER, NATIONAL_MAP_ZOOM } from '../config/primaryFocus'
|
||||
@@ -7,6 +8,8 @@ import { featureCollectionBounds } from '../lib/geojsonBounds'
|
||||
import type { MapImageOverlay, MapViewportState, VectorSelectionBBox } from '../types'
|
||||
import { basemapGround, basemapPaint, huidigeWerkstand, mapSymbology } from './map/mapSymbology'
|
||||
|
||||
maplibregl.setWorkerUrl(maplibreWorkerUrl)
|
||||
|
||||
interface GeoMapProps {
|
||||
data: GeoJSON.FeatureCollection | null
|
||||
dataFillColor?: string
|
||||
|
||||