mapreader 1.6.2.post0.dev8__tar.gz → 1.6.2.post0.dev29__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/PKG-INFO +2 -2
  2. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/_version.py +3 -3
  3. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/sheet_downloader.py +12 -5
  4. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/tile_merging.py +7 -1
  5. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/PKG-INFO +2 -2
  6. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/requires.txt +1 -1
  7. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/setup.py +1 -1
  8. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/LICENSE +0 -0
  9. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/README.md +0 -0
  10. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/__init__.py +0 -0
  11. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/__main__.py +0 -0
  12. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/annotate/__init__.py +0 -0
  13. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/annotate/annotator.py +0 -0
  14. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/classify/__init__.py +0 -0
  15. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/classify/classifier.py +0 -0
  16. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/classify/custom_models.py +0 -0
  17. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/classify/datasets.py +0 -0
  18. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/classify/load_annotations.py +0 -0
  19. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/__init__.py +0 -0
  20. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/data_structures.py +0 -0
  21. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/downloader.py +0 -0
  22. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/downloader_utils.py +0 -0
  23. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/download/tile_loading.py +0 -0
  24. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/load/__init__.py +0 -0
  25. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/load/geo_utils.py +0 -0
  26. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/load/images.py +0 -0
  27. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/load/loader.py +0 -0
  28. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/process/__init__.py +0 -0
  29. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/process/context_post_process.py +0 -0
  30. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/process/occlusion_analysis.py +0 -0
  31. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/process/process.py +0 -0
  32. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/spot_text/__init__.py +0 -0
  33. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/spot_text/dataclasses.py +0 -0
  34. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/spot_text/deepsolo_runner.py +0 -0
  35. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/spot_text/dptext_detr_runner.py +0 -0
  36. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/spot_text/maptext_runner.py +0 -0
  37. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/spot_text/runner_base.py +0 -0
  38. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/utils/__init__.py +0 -0
  39. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/utils/compute_and_save_stats.py +0 -0
  40. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/utils/load_frames.py +0 -0
  41. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader/utils/slice_parallel.py +0 -0
  42. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/SOURCES.txt +0 -0
  43. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/dependency_links.txt +0 -0
  44. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/entry_points.txt +0 -0
  45. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/not-zip-safe +0 -0
  46. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/mapreader.egg-info/top_level.txt +0 -0
  47. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/setup.cfg +0 -0
  48. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/tests/test_geo_pipeline.py +0 -0
  49. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/tests/test_import.py +0 -0
  50. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/tests/test_utils_load_frames.py +0 -0
  51. {mapreader-1.6.2.post0.dev8 → mapreader-1.6.2.post0.dev29}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mapreader
3
- Version: 1.6.2.post0.dev8
3
+ Version: 1.6.2.post0.dev29
4
4
  Summary: A computer vision pipeline for the semantic exploration of maps/images at scale
5
5
  Home-page: https://github.com/Living-with-machines/MapReader
6
6
  Download-URL: https://github.com/Living-with-machines/MapReader/archive/refs/heads/main.zip
@@ -58,7 +58,7 @@ Requires-Dist: geopandas<1.0.0
58
58
  Requires-Dist: pyogrio>=0.7.2
59
59
  Requires-Dist: cartopy>=0.22.0
60
60
  Requires-Dist: joblib>=1.4.0
61
- Requires-Dist: opencv-python<5.0.0.0
61
+ Requires-Dist: opencv-python<5.0.0.0,>=4.8.1.78
62
62
  Requires-Dist: folium<1.0.0,>=0.12
63
63
  Requires-Dist: mapclassify<3.0.0,>=2.0.0
64
64
  Requires-Dist: xyzservices==2024.9.0
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-02-06T16:52:53+0000",
11
+ "date": "2025-02-11T10:07:41+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "e9b81da2a2fe110cb4567f25d95e429e8e3cf517",
15
- "version": "1.6.2.post0.dev8"
14
+ "full-revisionid": "7e01b6b44e16bf3f2e487452daa3024d9b0f53f3",
15
+ "version": "1.6.2.post0.dev29"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -530,7 +530,7 @@ class SheetDownloader:
530
530
  existing_id: str | bool,
531
531
  download_in_parallel: bool = True,
532
532
  overwrite: bool = False,
533
- force: bool = False,
533
+ error_on_missing_map=True,
534
534
  ) -> str | bool:
535
535
  """
536
536
  Downloads a single map sheet and saves as png file.
@@ -545,8 +545,8 @@ class SheetDownloader:
545
545
  Whether to download tiles in parallel, by default ``True``.
546
546
  overwrite : bool, optional
547
547
  Whether to overwrite existing maps, by default ``False``.
548
- force : bool, optional
549
- Whether to force the download or ask for confirmation, by default ``False``.
548
+ error_on_missing_map : bool, optional
549
+ Whether to raise an error if a map sheet is missing, by default True.
550
550
 
551
551
  Returns
552
552
  -------
@@ -563,13 +563,16 @@ class SheetDownloader:
563
563
  map_name = existing_id[:-4] # remove file extension (assuming .png)
564
564
 
565
565
  img_path, success = self.merger.merge(
566
- feature["grid_bb"], file_name=map_name, overwrite=overwrite
566
+ feature["grid_bb"],
567
+ file_name=map_name,
568
+ overwrite=overwrite,
569
+ error_on_missing_map=error_on_missing_map,
567
570
  )
568
571
 
569
572
  if success:
570
573
  print(f'[INFO] Downloaded "{img_path}"')
571
574
  else:
572
- print(f'[WARNING] Download of "{img_path}" was unsuccessful.')
575
+ print("[WARNING] Download unsuccessful.")
573
576
 
574
577
  # Try to remove the temporary folder
575
578
  try:
@@ -686,6 +689,7 @@ class SheetDownloader:
686
689
  overwrite: bool | None = False,
687
690
  download_in_parallel: bool = True,
688
691
  force: bool = False,
692
+ error_on_missing_map: bool = True,
689
693
  **kwargs: dict | None,
690
694
  ):
691
695
  """Download map sheets from features.
@@ -704,6 +708,8 @@ class SheetDownloader:
704
708
  Whether to download tiles in parallel, by default ``True``.
705
709
  force : bool, optional
706
710
  Whether to force the download or ask for confirmation, by default ``False``.
711
+ error_on_missing_map : bool, optional
712
+ Whether to raise an error if a map sheet is missing, by default True.
707
713
  **kwargs : dict, optional
708
714
  Keyword arguments to pass to the
709
715
  :meth:`~.download.sheet_downloader.SheetDownloader._save_metadata`
@@ -759,6 +765,7 @@ class SheetDownloader:
759
765
  existing_id,
760
766
  download_in_parallel=download_in_parallel,
761
767
  overwrite=overwrite,
768
+ error_on_missing_map=error_on_missing_map,
762
769
  )
763
770
  if img_path is not False:
764
771
  metadata_path = f"{path_save}/{metadata_fname}"
@@ -148,6 +148,7 @@ class TileMerger:
148
148
  grid_bb: GridBoundingBox,
149
149
  file_name: str | None = None,
150
150
  overwrite: bool = False,
151
+ error_on_missing_map: bool = True,
151
152
  ) -> str | bool:
152
153
  """Merges cells contained within GridBoundingBox.
153
154
 
@@ -167,7 +168,12 @@ class TileMerger:
167
168
  """
168
169
  os.makedirs(self.output_folder, exist_ok=True)
169
170
 
170
- tile_size = self._load_tile_size(grid_bb)
171
+ try:
172
+ tile_size = self._load_tile_size(grid_bb)
173
+ except FileNotFoundError as err:
174
+ if error_on_missing_map:
175
+ raise err
176
+ return False, False
171
177
 
172
178
  merged_image = Image.new(
173
179
  "RGBA", (len(grid_bb.x_range) * tile_size, len(grid_bb.y_range) * tile_size)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mapreader
3
- Version: 1.6.2.post0.dev8
3
+ Version: 1.6.2.post0.dev29
4
4
  Summary: A computer vision pipeline for the semantic exploration of maps/images at scale
5
5
  Home-page: https://github.com/Living-with-machines/MapReader
6
6
  Download-URL: https://github.com/Living-with-machines/MapReader/archive/refs/heads/main.zip
@@ -58,7 +58,7 @@ Requires-Dist: geopandas<1.0.0
58
58
  Requires-Dist: pyogrio>=0.7.2
59
59
  Requires-Dist: cartopy>=0.22.0
60
60
  Requires-Dist: joblib>=1.4.0
61
- Requires-Dist: opencv-python<5.0.0.0
61
+ Requires-Dist: opencv-python<5.0.0.0,>=4.8.1.78
62
62
  Requires-Dist: folium<1.0.0,>=0.12
63
63
  Requires-Dist: mapclassify<3.0.0,>=2.0.0
64
64
  Requires-Dist: xyzservices==2024.9.0
@@ -29,7 +29,7 @@ geopandas<1.0.0
29
29
  pyogrio>=0.7.2
30
30
  cartopy>=0.22.0
31
31
  joblib>=1.4.0
32
- opencv-python<5.0.0.0
32
+ opencv-python<5.0.0.0,>=4.8.1.78
33
33
  folium<1.0.0,>=0.12
34
34
  mapclassify<3.0.0,>=2.0.0
35
35
  xyzservices==2024.9.0
@@ -59,7 +59,7 @@ setuptools.setup(
59
59
  "pyogrio>=0.7.2",
60
60
  "cartopy>=0.22.0",
61
61
  "joblib>=1.4.0",
62
- "opencv-python<5.0.0.0",
62
+ "opencv-python>=4.8.1.78,<5.0.0.0",
63
63
  "folium>=0.12,<1.0.0",
64
64
  "mapclassify>=2.0.0,<3.0.0",
65
65
  "xyzservices==2024.9.0",