From 885545d8a6e05085d8c2734ac74559e404507ad4 Mon Sep 17 00:00:00 2001 From: dieuska Date: Wed, 19 Jun 2024 11:32:14 +0200 Subject: [PATCH] cleanups, fix in feedback cleanups, fix in feedback --- brdr/aligner.py | 2 +- brdr/utils.py | 5 +++-- examples/example_ao.py | 34 ++++++++++++++++++++++++++++++++++ examples/example_eo.py | 14 +++++++------- tests/test_examples.py | 2 +- 5 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 examples/example_ao.py diff --git a/brdr/aligner.py b/brdr/aligner.py index 8dc5a7f..139ea39 100644 --- a/brdr/aligner.py +++ b/brdr/aligner.py @@ -618,7 +618,7 @@ def get_formula(self, geometry, with_geom=False): "geometry": geom, } - self.feedback_info(dict_formula) + self.feedback_debug(str(dict_formula)) return dict_formula def get_last_version_date(self, geometry, grb_type=GRBType.ADP): diff --git a/brdr/utils.py b/brdr/utils.py index 044b977..16723e9 100644 --- a/brdr/utils.py +++ b/brdr/utils.py @@ -168,7 +168,7 @@ def get_oe_dict_by_ids(objectids, oetype='aanduidingsobjecten'): geom = shape(response["locatie"]["contour"]) dict_thematic[key] = geom else: - logging.warning('object met id ' + str(a) +' werd niet gevonden in ' + oetype) + logging.warning('object id ' + str(a) +' not available in ' + oetype) return dict_thematic @@ -398,7 +398,8 @@ def diffs_from_dict_series(dict_series, dict_thematic): #calculate the diffs you want to have #diff = results_diff[key].area * 100 / results[key].area #percentage of change - diff = results[key].area - dict_thematic[key].area #difference (m²) between area of resulting geometry and original geometry + diff = results[key].area - dict_thematic[key].area#difference (m²) between area of resulting geometry and original geometry + diff = round(diff, 1)#round, so the detected changes are within 10cm² #diff = abs(results[key].area - dict_thematic[key].area) #absolute difference (m²) between area of resulting geometry and original geometry #diff = abs(results[key].area - dict_thematic[key].area)*100/dict_thematic[key].area #absolute difference (%) between area of resulting geometry and original geometry #TODO: determine a good diff-value for determination diff --git a/examples/example_ao.py b/examples/example_ao.py new file mode 100644 index 0000000..72137cb --- /dev/null +++ b/examples/example_ao.py @@ -0,0 +1,34 @@ +import numpy as np + +from brdr.aligner import Aligner +from brdr.utils import get_oe_dict_by_ids +from examples import show_map, plot_series + +if __name__ == "__main__": + # EXAMPLE to test the algorithm for erfgoedobject with relevant distance 0.2m and od_strategy SNAP_ALL_SIDE + + # Initiate brdr + aligner = Aligner() + # Load thematic data & reference data + #dict_theme = get_oe_dict_by_ids([206363], oetype='erfgoedobjecten') + aanduidingsobjecten = range(1,10) + dict_theme = get_oe_dict_by_ids(aanduidingsobjecten, oetype='aanduidingsobjecten') + aligner.load_thematic_data_dict(dict_theme) + aligner.load_reference_data_grb_actual(grb_type="adp", partition=1000) + + #RESULTS + # rel_dist = 0.2 + # dict_results_by_distance = {} + # #put resulting tuple in a dictionary + # dict_results_by_distance[rel_dist] = aligner.process_dict_thematic(rel_dist,2) + # aligner.export_results("output/") + # show_map(dict_results_by_distance, aligner.dict_thematic, aligner.dict_reference) + + series = np.arange(0, 500, 20, dtype=int)/100 + #predict which relevant distances are interesting to propose as resulting geometry + dict_predicted, diffs = aligner.predictor(relevant_distances=series, od_strategy=2,treshold_overlap_percentage=50) + for key in dict_predicted.keys(): + diff ={} + diff[key]= diffs[key] + plot_series(series,diff) + show_map(dict_predicted[key], {key:aligner.dict_thematic[key]}, aligner.dict_reference) \ No newline at end of file diff --git a/examples/example_eo.py b/examples/example_eo.py index 2f9ec5e..9f478b1 100644 --- a/examples/example_eo.py +++ b/examples/example_eo.py @@ -13,13 +13,13 @@ #dict_theme = get_oe_dict_by_ids([206363], oetype='erfgoedobjecten') erfgoedobjecten =[206407, -# 206403, -# 206372, -# 206369, -# 206377, -# 206371, -# 206370, -# 206368, +206403, +206372, +206369, +206377, +206371, +206370, +206368, 206786 ] dict_theme = get_oe_dict_by_ids(erfgoedobjecten, oetype='erfgoedobjecten') diff --git a/tests/test_examples.py b/tests/test_examples.py index 64617d6..9f2093e 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -132,6 +132,6 @@ def test_example_predictor(self): series = np.arange(0, 300, 10, dtype=int)/100 # predict which relevant distances are interesting to propose as resulting geometry - dict_predicted,diffs = aligner.predictor(relevant_distances=series, od_strategy=4, treshold_overlap_percentage=50) + dict_predicted, diffs = aligner.predictor(relevant_distances=series, od_strategy=4, treshold_overlap_percentage=50) for key in dict_predicted.keys(): continue \ No newline at end of file