Skip to content

Commit a177dc7

Browse files
authored
Merge branch 'main' into add-earthdaily-methane-detection
2 parents 76127b9 + e0117c2 commit a177dc7

43 files changed

Lines changed: 5138 additions & 72 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/benchmarks.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,19 @@ jobs:
8484
with:
8585
name: report
8686
path: qa/benchmarks/report/
87+
- name: Merge Parquet Files and Upload to S3
88+
env:
89+
APEX_ALGORITHMS_S3_ACCESS_KEY_ID: ${{ secrets.APEX_ALGORITHMS_S3_ACCESS_KEY_ID }}
90+
APEX_ALGORITHMS_S3_SECRET_ACCESS_KEY: ${{ secrets.APEX_ALGORITHMS_S3_SECRET_ACCESS_KEY }}
91+
APEX_ALGORITHMS_S3_ENDPOINT_URL: "https://s3.waw3-1.cloudferro.com"
92+
APEX_ALGORITHMS_S3_DEFAULT_REGION: "waw3-1"
93+
run: |
94+
python qa/benchmarks/merge_parquet.py \
95+
--s3-client "${{ secrets.APEX_ALGORITHMS_S3_ACCESS_KEY_ID }}" \
96+
--s3-secret "${{ secrets.APEX_ALGORITHMS_S3_SECRET_ACCESS_KEY }}" \
97+
--s3-endpoint "${{ env.APEX_ALGORITHMS_S3_ENDPOINT_URL }}" \
98+
--s3-region "${{ env.APEX_ALGORITHMS_S3_DEFAULT_REGION }}" \
99+
--s3-bucket "apex-benchmarks" \
100+
--input-path "metrics/v1/metrics.parquet" \
101+
--output-path "metrics/v1/metrics-merged.parquet" \
102+
--s3-output
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
{
2+
"process_graph": {
3+
"loadcollection1": {
4+
"process_id": "load_collection",
5+
"arguments": {
6+
"bands": [
7+
"B02",
8+
"B04",
9+
"B8A"
10+
],
11+
"id": "SENTINEL2_L2A",
12+
"spatial_extent": {
13+
"west": 14.09,
14+
"east": 14.27,
15+
"south": 45.174,
16+
"north": 45.25
17+
},
18+
"temporal_extent": [
19+
"2025-05-10",
20+
"2025-05-12"
21+
]
22+
}
23+
},
24+
"reducedimension1": {
25+
"process_id": "reduce_dimension",
26+
"arguments": {
27+
"data": {
28+
"from_node": "loadcollection1"
29+
},
30+
"dimension": "t",
31+
"reducer": {
32+
"process_graph": {
33+
"first1": {
34+
"process_id": "first",
35+
"arguments": {
36+
"data": {
37+
"from_parameter": "data"
38+
}
39+
},
40+
"result": true
41+
}
42+
}
43+
}
44+
}
45+
},
46+
"apply1": {
47+
"process_id": "apply",
48+
"arguments": {
49+
"data": {
50+
"from_node": "reducedimension1"
51+
},
52+
"process": {
53+
"process_graph": {
54+
"divide1": {
55+
"process_id": "divide",
56+
"arguments": {
57+
"x": {
58+
"from_parameter": "x"
59+
},
60+
"y": 10000.0
61+
},
62+
"result": true
63+
}
64+
}
65+
}
66+
}
67+
},
68+
"applydimension1": {
69+
"process_id": "apply_dimension",
70+
"arguments": {
71+
"data": {
72+
"from_node": "apply1"
73+
},
74+
"dimension": "bands",
75+
"process": {
76+
"process_graph": {
77+
"arrayelement1": {
78+
"process_id": "array_element",
79+
"arguments": {
80+
"data": {
81+
"from_parameter": "data"
82+
},
83+
"index": 2
84+
}
85+
},
86+
"arrayelement2": {
87+
"process_id": "array_element",
88+
"arguments": {
89+
"data": {
90+
"from_parameter": "data"
91+
},
92+
"index": 1
93+
}
94+
},
95+
"subtract1": {
96+
"process_id": "subtract",
97+
"arguments": {
98+
"x": {
99+
"from_node": "arrayelement1"
100+
},
101+
"y": {
102+
"from_node": "arrayelement2"
103+
}
104+
}
105+
},
106+
"arrayelement3": {
107+
"process_id": "array_element",
108+
"arguments": {
109+
"data": {
110+
"from_parameter": "data"
111+
},
112+
"index": 0
113+
}
114+
},
115+
"subtract2": {
116+
"process_id": "subtract",
117+
"arguments": {
118+
"x": {
119+
"from_node": "arrayelement2"
120+
},
121+
"y": {
122+
"from_node": "arrayelement3"
123+
}
124+
}
125+
},
126+
"multiply1": {
127+
"process_id": "multiply",
128+
"arguments": {
129+
"x": 0.106,
130+
"y": {
131+
"from_node": "subtract2"
132+
}
133+
}
134+
},
135+
"subtract3": {
136+
"process_id": "subtract",
137+
"arguments": {
138+
"x": {
139+
"from_node": "subtract1"
140+
},
141+
"y": {
142+
"from_node": "multiply1"
143+
}
144+
}
145+
},
146+
"add1": {
147+
"process_id": "add",
148+
"arguments": {
149+
"x": {
150+
"from_node": "arrayelement1"
151+
},
152+
"y": {
153+
"from_node": "arrayelement2"
154+
}
155+
}
156+
},
157+
"subtract4": {
158+
"process_id": "subtract",
159+
"arguments": {
160+
"x": {
161+
"from_node": "add1"
162+
},
163+
"y": {
164+
"from_node": "multiply1"
165+
}
166+
}
167+
},
168+
"divide2": {
169+
"process_id": "divide",
170+
"arguments": {
171+
"x": {
172+
"from_node": "subtract3"
173+
},
174+
"y": {
175+
"from_node": "subtract4"
176+
}
177+
},
178+
"result": true
179+
}
180+
}
181+
}
182+
}
183+
},
184+
"apply2": {
185+
"process_id": "apply",
186+
"arguments": {
187+
"data": {
188+
"from_node": "applydimension1"
189+
},
190+
"process": {
191+
"process_graph": {
192+
"linearscalerange1": {
193+
"process_id": "linear_scale_range",
194+
"arguments": {
195+
"inputMax": 1,
196+
"inputMin": 0,
197+
"outputMax": 255,
198+
"outputMin": 0,
199+
"x": {
200+
"from_parameter": "x"
201+
}
202+
},
203+
"result": true
204+
}
205+
}
206+
}
207+
},
208+
"result": true
209+
}
210+
},
211+
"parameters": [
212+
{
213+
"name": "time",
214+
"description": "Temporal range for data acquisition",
215+
"schema": {},
216+
"default": [
217+
"2025-05-10",
218+
"2025-05-12"
219+
],
220+
"optional": true
221+
},
222+
{
223+
"name": "bounding_box",
224+
"description": "Spatial extent for the \u010cepi\u0107 plain agricultural area",
225+
"schema": {},
226+
"default": {
227+
"west": 14.09,
228+
"east": 14.27,
229+
"south": 45.174,
230+
"north": 45.25
231+
},
232+
"optional": true
233+
}
234+
],
235+
"id": "atmospheric_resistant_vegetation_index",
236+
"summary": "Calculates the Atmospherically Resistant Vegetation Index (ARVI) from Sentinel-2 imagery using a blue-band self-correction to reduce atmospheric scattering effects compared to standard NDVI.",
237+
"description": "Calculates the Atmospherically Resistant Vegetation Index (ARVI) from Sentinel-2 L2A imagery. ARVI extends standard NDVI by incorporating the blue band as a self-correction term for atmospheric scattering from haze, smoke, and aerosols, using an empirically derived weighting factor (y = 0.106). Suitable for monitoring crop health, detecting early vegetation stress, and mapping vegetation density gradients across regions with variable atmospheric conditions such as tropical or fire-affected areas."
238+
}

0 commit comments

Comments
 (0)