From 3047dca3e79060f6e9fadf4beed391ab01431b81 Mon Sep 17 00:00:00 2001 From: kempenep Date: Fri, 3 Nov 2023 12:17:27 +0100 Subject: [PATCH] Correcting zonal stats for pyjeo (#27) --- ...enchmarks_pyjeo.py => benchmarks_pyjeo.py} | 21 +++++++++++++----- results_zonalstats/GeoBenchmark.png | Bin 34366 -> 37841 bytes results_zonalstats/benchmark_results.csv | 8 +++++-- .../pyjeo/pyjeo_zonalstats_1band.png | Bin 0 -> 39645 bytes 4 files changed, 21 insertions(+), 8 deletions(-) rename benchmarks_zonalstats/{_benchmarks_pyjeo.py => benchmarks_pyjeo.py} (79%) create mode 100644 results_zonalstats/pyjeo/pyjeo_zonalstats_1band.png diff --git a/benchmarks_zonalstats/_benchmarks_pyjeo.py b/benchmarks_zonalstats/benchmarks_pyjeo.py similarity index 79% rename from benchmarks_zonalstats/_benchmarks_pyjeo.py rename to benchmarks_zonalstats/benchmarks_pyjeo.py index d1c4cee..5567a69 100644 --- a/benchmarks_zonalstats/_benchmarks_pyjeo.py +++ b/benchmarks_zonalstats/benchmarks_pyjeo.py @@ -2,12 +2,13 @@ """ Module to benchmark zonalstats. """ - +import os from datetime import datetime import logging from pathlib import Path from typing import List +import pandas as pd import geopandas as gpd import pyjeo as pj @@ -27,11 +28,15 @@ def _get_package() -> str: - return "pygeoprocessing" + return "pyjeo" def _get_version() -> str: - return f"{pj.__version__}".replace("v", "") + nproc = os.environ.get("OMP_NUM_THREADS") + if nproc is not None: + return f"{pj.__version__} {nproc} threads".replace("v", "") + else: + return f"{pj.__version__}".replace("v", "") def zonalstats_1band(tmp_dir: Path) -> List[RunResult]: @@ -55,12 +60,13 @@ def zonalstats_1band(tmp_dir: Path) -> List[RunResult]: stats = pj.geometry.extract( vector_data, jim, - rule=["mean", "stdev", "count"], + # rule=["mean", "stdev", "count"], + rule=["mean", "stdev", "sum"], output="/vsimem/pj.json", oformat="GeoJSON", ) - print(stats) + print(pd.DataFrame(stats.dict())) secs_taken = (datetime.now() - start_time).total_seconds() results.append( @@ -76,7 +82,10 @@ def zonalstats_1band(tmp_dir: Path) -> List[RunResult]: ) ) - logger.info(f"took {secs_taken:.2f}s for {nb_poly} polygons, {len(stats)} results") + logger.info( + f"took {secs_taken:.2f}s for {nb_poly} polygons, " + f"{stats.properties.getFeatureCount()} results" + ) # Return return results diff --git a/results_zonalstats/GeoBenchmark.png b/results_zonalstats/GeoBenchmark.png index c558384eb90b5d532d36e4ad104e6651e8a386c7..9624721004ff651b006157f7cd88cae3c897b576 100644 GIT binary patch literal 37841 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 E0f^_U2><{9 diff --git a/results_zonalstats/benchmark_results.csv b/results_zonalstats/benchmark_results.csv index 1f3792f..46142fa 100644 --- a/results_zonalstats/benchmark_results.csv +++ b/results_zonalstats/benchmark_results.csv @@ -1,5 +1,9 @@ run_datetime,package,package_version,operation,operation_descr,secs_taken,run_details 2023-03-22 22:51:12.810491,pygeoprocessing,2.4.0,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,52.998522,{} -2023-03-22 22:52:01.739550,rasterstats,0.18.0,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,46.805364,{} 2023-03-23 15:42:53.890171,geowombat,2.1.6,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,83.593633,{} -2023-03-23 18:48:59.459963,pyqgis,3.28.2-Firenze,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,4.282287,{} +2023-11-01 21:32:20.485871,pyjeo,1.1.6 1 threads,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,20.261884,{} +2023-11-01 21:33:43.207416,pyjeo,1.1.6 2 threads,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,18.131106,{} +2023-11-01 21:35:01.359175,pyjeo,1.1.6 3 threads,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,16.00101,{} +2023-11-01 22:05:48.873225,pyjeo,1.1.6 4 threads,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,15.466929,{} +2023-11-01 22:06:50.164708,rasterstats,0.19.0,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,58.699413,{} +2023-11-01 22:06:58.247831,pyqgis,3.28.10-Firenze,zonalstats_1band,zonalstats of agri parcels (5000 polygons) + S2 NDVI BEFL,4.808703,{} diff --git a/results_zonalstats/pyjeo/pyjeo_zonalstats_1band.png b/results_zonalstats/pyjeo/pyjeo_zonalstats_1band.png new file mode 100644 index 0000000000000000000000000000000000000000..78e9bd3d09b006e6904c8bce50727e4e8fcec0a0 GIT binary patch literal 39645 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

;B(jj}umkI~G)ukm3d4|2V^eSb?T)_S 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 literal 0 HcmV?d00001