test(acceptance): reproducible Stage 8 acceptance package

Add test/acceptance/ so the customer's reviewers can re-run what the
Stage 8 documents claim on an isolated stand built from this branch:

- compose.acceptance.yml + stand.sh: compose project gis-acceptance
  (app 18080, postgres 15432, minio 19000/19001, rabbitmq mgmt 15672),
  POSTGIS_PLATFORM / MINIO_IMAGE knobs for arm64 and amd64 hosts.
- functional.sh: the 89 test-stand checks of Приложение 7 section 5
  (F01-F38, N01-N38, L02-L05, L07-L15), own prefixed test data,
  PostGIS/MinIO confirmation via the stand containers, full cleanup.
- lp_gen.py / lp_run.sh / lp_verify.py: synthetic ЛП inputs, a run from
  stage 0, and an independent numpy re-implementation of every node that
  compares all 15 outputs pixel by pixel; read-only (GET) mode works
  against any stand, in row/column windows for 22219x14977 rasters.
- load.sh + seed.sh: scenarios S1-S6 of Приложение 3 with hey 0.1.5
  running inside the stand network; CSV/JSON summaries, criteria K1-K4.
- scan.sh: govulncheck (source and binary), gosec, trivy fs/image,
  golangci-lint; fails on any High/Critical.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 22:37:28 +05:00
parent c6229c46f7
commit ca87d6961b
22 changed files with 3136 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc">
<sld:NamedLayer>
<sld:Name>group</sld:Name>
<sld:UserStyle>
<sld:Title>Group fallback style</sld:Title>
<sld:FeatureTypeStyle>
<sld:Rule>
<sld:RasterSymbolizer>
<sld:ColorMap>
<sld:ColorMapEntry color="#f7fbff" quantity="0"/>
<sld:ColorMapEntry color="#08306b" quantity="100000"/>
</sld:ColorMap>
</sld:RasterSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>

Binary file not shown.

View File

@@ -0,0 +1,145 @@
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"plot_id": 1,
"name": "Участок 1",
"area_ha": 1680.0
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
69.0,
53.6
],
[
69.6,
53.6
],
[
69.6,
54.0
],
[
69.0,
54.0
],
[
69.0,
53.6
]
]
]
}
},
{
"type": "Feature",
"properties": {
"plot_id": 2,
"name": "Участок 2",
"area_ha": 2100.0
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
69.9,
54.2
],
[
70.5,
54.2
],
[
70.5,
54.7
],
[
69.9,
54.7
],
[
69.9,
54.2
]
]
]
}
},
{
"type": "Feature",
"properties": {
"plot_id": 3,
"name": "Участок 3",
"area_ha": 1400.0
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
70.6,
53.7
],
[
71.1,
53.7
],
[
71.1,
54.1
],
[
70.6,
54.1
],
[
70.6,
53.7
]
]
]
}
},
{
"type": "Feature",
"properties": {
"plot_id": 4,
"name": "Участок 4",
"area_ha": 1750.0
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
71.2,
54.5
],
[
71.7,
54.5
],
[
71.7,
55.0
],
[
71.2,
55.0
],
[
71.2,
54.5
]
]
]
}
}
]
}

View File

@@ -0,0 +1,243 @@
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"kato": "591000000",
"district": "Петропавловск Г.А.",
"Y2022": 47567.6,
"Y2023": 48311.2,
"Y2024": 49120.5
},
"geometry": {
"type": "Point",
"coordinates": [
69.14998,
54.89148
]
}
},
{
"type": "Feature",
"properties": {
"kato": "593200000",
"district": "Айыртауский район",
"Y2022": 21802.7,
"Y2023": 22615.1,
"Y2024": 23427.5
},
"geometry": {
"type": "Point",
"coordinates": [
68.01276,
53.19148
]
}
},
{
"type": "Feature",
"properties": {
"kato": "593400000",
"district": "Акжарский район",
"Y2022": 23605.4,
"Y2023": 24417.8,
"Y2024": 25230.2
},
"geometry": {
"type": "Point",
"coordinates": [
71.74765,
53.78951
]
}
},
{
"type": "Feature",
"properties": {
"kato": "595800000",
"district": "Аккайынский район",
"Y2022": 25264.0,
"Y2023": 26076.4,
"Y2024": 26888.8
},
"geometry": {
"type": "Point",
"coordinates": [
69.55798,
54.45755
]
}
},
{
"type": "Feature",
"properties": {
"kato": "594200000",
"district": "Есильский район",
"Y2022": 27066.7,
"Y2023": 27879.1,
"Y2024": 28691.5
},
"geometry": {
"type": "Point",
"coordinates": [
68.32766,
54.11517
]
}
},
{
"type": "Feature",
"properties": {
"kato": "594600000",
"district": "Жамбылский район",
"Y2022": 28869.4,
"Y2023": 29681.8,
"Y2024": 30494.2
},
"geometry": {
"type": "Point",
"coordinates": [
66.98273,
54.4391
]
}
},
{
"type": "Feature",
"properties": {
"kato": "595000000",
"district": "Кызылжарский район",
"Y2022": 46862.7,
"Y2023": 48268.6,
"Y2024": 49205.8
},
"geometry": {
"type": "Point",
"coordinates": [
69.25907,
54.89353
]
}
},
{
"type": "Feature",
"properties": {
"kato": "595200000",
"district": "Мамлютский район",
"Y2022": 32330.7,
"Y2023": 33143.1,
"Y2024": 33955.5
},
"geometry": {
"type": "Point",
"coordinates": [
68.21021,
54.81946
]
}
},
{
"type": "Feature",
"properties": {
"kato": "596000000",
"district": "Тайыншинский район",
"Y2022": 34133.4,
"Y2023": 34945.8,
"Y2024": 35758.2
},
"geometry": {
"type": "Point",
"coordinates": [
69.89444,
53.80885
]
}
},
{
"type": "Feature",
"properties": {
"kato": "596200000",
"district": "Тимирязевский район",
"Y2022": 35792.0,
"Y2023": 36604.4,
"Y2024": 37416.8
},
"geometry": {
"type": "Point",
"coordinates": [
66.56047,
53.66856
]
}
},
{
"type": "Feature",
"properties": {
"kato": "596400000",
"district": "Уалихановский район",
"Y2022": 37594.7,
"Y2023": 38407.1,
"Y2024": 39219.5
},
"geometry": {
"type": "Point",
"coordinates": [
72.82078,
53.36512
]
}
},
{
"type": "Feature",
"properties": {
"kato": "593600000",
"district": "Район Магжана Жумабаева",
"Y2022": 39253.3,
"Y2023": 40065.7,
"Y2024": 40878.1
},
"geometry": {
"type": "Point",
"coordinates": [
70.5439,
54.63954
]
}
},
{
"type": "Feature",
"properties": {
"kato": "595600000",
"district": "Район Шал акына",
"Y2022": 41056.0,
"Y2023": 41868.4,
"Y2024": 42680.8
},
"geometry": {
"type": "Point",
"coordinates": [
67.40455,
53.80847
]
}
},
{
"type": "Feature",
"properties": {
"kato": "596600000",
"district": "Район им. Габита Мусрепова",
"Y2022": 42858.7,
"Y2023": 43671.1,
"Y2024": 44483.5
},
"geometry": {
"type": "Point",
"coordinates": [
67.02892,
52.78419
]
}
}
]
}

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<sld:StyledLayerDescriptor version="1.0.0" xmlns:sld="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc">
<sld:NamedLayer>
<sld:Name>ndvi</sld:Name>
<sld:UserStyle>
<sld:Title>NDVI gradient</sld:Title>
<sld:FeatureTypeStyle>
<sld:Rule>
<sld:RasterSymbolizer>
<sld:ColorMap>
<sld:ColorMapEntry color="#a50026" quantity="0.0"/>
<sld:ColorMapEntry color="#ffffbf" quantity="0.5"/>
<sld:ColorMapEntry color="#006837" quantity="1.0"/>
</sld:ColorMap>
</sld:RasterSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>

View File

@@ -0,0 +1 @@
not an SLD file