polytope-python 2.1.1__tar.gz → 2.1.3__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 (287) hide show
  1. {polytope_python-2.1.1 → polytope_python-2.1.3}/.pre-commit-config.yaml +6 -3
  2. {polytope_python-2.1.1/polytope_python.egg-info → polytope_python-2.1.3}/PKG-INFO +7 -7
  3. {polytope_python-2.1.1 → polytope_python-2.1.3}/README.md +6 -6
  4. polytope_python-2.1.3/docs/Client/Overview.md +29 -0
  5. polytope_python-2.1.3/docs/Service/Examples/OpenData/od_polygon_example.ipynb +675 -0
  6. polytope_python-2.1.3/docs/Service/Examples/OpenData/od_timeseries_example.ipynb +188 -0
  7. polytope_python-2.1.3/docs/Service/Examples/circle_example.ipynb +758 -0
  8. polytope_python-2.1.3/docs/Service/Examples/climate_dt_example.ipynb +224 -0
  9. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/examples.md +17 -3
  10. polytope_python-2.1.3/docs/Service/Examples/extremes_dt_example.ipynb +188 -0
  11. polytope_python-2.1.3/docs/Service/Examples/on-demand_dt_example.ipynb +189 -0
  12. polytope_python-2.1.3/docs/Service/Examples/opendata_example.ipynb +224 -0
  13. polytope_python-2.1.3/docs/Service/Examples/operational_example.ipynb +225 -0
  14. polytope_python-2.1.3/docs/Service/Examples/position_example.ipynb +131 -0
  15. polytope_python-2.1.3/docs/Service/Features/circle.md +53 -0
  16. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Features/feature.md +4 -2
  17. polytope_python-2.1.3/docs/Service/Features/position.md +49 -0
  18. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Features/timeseries.md +1 -1
  19. polytope_python-2.1.3/docs/Service/Full_fields.md +176 -0
  20. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Installation.md +25 -4
  21. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Overview.md +2 -0
  22. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/index.md +16 -6
  23. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/3D_shipping_route.py +23 -7
  24. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/3D_shipping_route_wave_model.py +17 -5
  25. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/4D_flight_path.py +36 -10
  26. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/country_slicing.py +3 -1
  27. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/cyclic_route_around_earth.py +6 -2
  28. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/healpix_grid_box_example.py +18 -4
  29. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/octahedral_grid_box_example.py +9 -1
  30. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/octahedral_grid_country_example.py +9 -1
  31. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/plotting_country_data.py +2 -1
  32. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/read_me_example.py +5 -1
  33. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/slicing_all_ecmwf_countries.py +6 -2
  34. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/wind_farms.py +9 -3
  35. polytope_python-2.1.3/mkdocs.yml +54 -0
  36. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/fdb_performance.py +11 -3
  37. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/fdb_performance_3D.py +11 -3
  38. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/fdb_slice_many_numbers_timeseries.py +25 -6
  39. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/performance_many_num_steps.py +7 -1
  40. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/plotting_scalability.py +20 -3
  41. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/scalability_test.py +54 -18
  42. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/scalability_test_2.py +19 -5
  43. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance_unstructured/octahedral_vs_unstructured_slicing.py +50 -11
  44. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance_unstructured/plot_structured_vs_unstructured_slicing.py +28 -8
  45. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/_version.py +1 -1
  46. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/backends/datacube.py +15 -5
  47. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/backends/fdb.py +89 -30
  48. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/backends/xarray.py +1 -1
  49. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/datacube_axis.py +22 -9
  50. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/index_tree_pb2.py +1 -0
  51. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/quadtree/quad_tree.py +21 -6
  52. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/quadtree/quadtree_additional_operations.py +21 -7
  53. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/tensor_index_tree.py +20 -6
  54. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_cyclic/datacube_cyclic.py +12 -4
  55. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/datacube_mappers.py +4 -2
  56. polytope_python-2.1.3/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/__init__.py +0 -0
  57. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix.py +48 -11
  58. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py +63 -16
  59. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular.py +3 -1
  60. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/icon.py +0 -1
  61. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/lambert_conformal.py +25 -7
  62. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/local_regular.py +26 -8
  63. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/octahedral.py +38 -12
  64. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_gaussian.py +41 -10
  65. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_ll.py +30 -7
  66. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/regular.py +33 -8
  67. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py +10 -5
  68. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_reverse/datacube_reverse.py +3 -1
  69. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_transformations.py +18 -6
  70. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_type_change/datacube_type_change.py +3 -1
  71. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/engine.py +3 -1
  72. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/hullslicer.py +72 -17
  73. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/optimised_point_in_polygon_slicer.py +6 -4
  74. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/optimised_quadtree_slicer.py +8 -4
  75. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/point_in_polygon_slicer.py +6 -4
  76. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/quadtree_slicer.py +14 -6
  77. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/slicing_tools.py +9 -3
  78. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/options.py +6 -2
  79. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/polytope.py +23 -7
  80. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/shapes.py +27 -6
  81. polytope_python-2.1.3/polytope_feature/utility/__init__.py +0 -0
  82. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/utility/engine_tools.py +3 -1
  83. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/utility/exceptions.py +8 -3
  84. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/utility/geometry.py +3 -1
  85. {polytope_python-2.1.1 → polytope_python-2.1.3/polytope_python.egg-info}/PKG-INFO +7 -7
  86. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_python.egg-info/SOURCES.txt +15 -0
  87. {polytope_python-2.1.1 → polytope_python-2.1.3}/pyproject.toml +0 -3
  88. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/conftest.py +31 -8
  89. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/quadtree_slicer_profiler.py +14 -4
  90. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_axis_mappers.py +20 -5
  91. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_bad_request_error.py +25 -6
  92. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_cyclic_axis_over_negative_vals.py +39 -9
  93. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_cyclic_axis_slicer_not_0.py +39 -9
  94. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_cyclic_axis_slicing.py +50 -14
  95. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_cyclic_nearest.py +28 -6
  96. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_cyclic_simple.py +11 -3
  97. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_cyclic_snapping.py +6 -1
  98. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_datacube_axes_init.py +49 -12
  99. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_datacube_xarray.py +36 -9
  100. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_date_time_unmerged.py +33 -7
  101. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_ecmwf_oper_data_fdb.py +65 -15
  102. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_engine_slicer.py +15 -5
  103. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_fdb_datacube.py +31 -7
  104. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_fdb_unmap_tree.py +31 -7
  105. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_float_type.py +18 -6
  106. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_healpix_mapper.py +32 -6
  107. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_healpix_nested_grid.py +60 -15
  108. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_hull_slicer.py +3 -1
  109. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_icon_grid_unstructured.py +7 -4
  110. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_icon_grid_unstructured_fdb.py +7 -2
  111. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_incomplete_tree_fdb.py +25 -6
  112. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_lambert_lam_grid_unstructured_fdb.py +24 -7
  113. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_lambert_lam_grid_unstructured_fdb_optimised_quadtree.py +22 -6
  114. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_local_grid_cyclic.py +25 -6
  115. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_local_regular_grid.py +21 -5
  116. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_local_swiss_grid.py +24 -5
  117. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_mappers.py +23 -5
  118. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_merge_cyclic_octahedral.py +19 -5
  119. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_merge_octahedral_one_axis.py +30 -5
  120. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_merge_transformation.py +6 -2
  121. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_multiple_param_fdb.py +28 -6
  122. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_octahedral_grid.py +35 -7
  123. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_orca_irregular_grid.py +9 -3
  124. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_orca_irregular_grid_optimised_point_in_polygon.py +9 -3
  125. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_orca_irregular_grid_point_in_polygon.py +9 -3
  126. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_override_md5_hash_options.py +28 -7
  127. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_point_nearest.py +47 -11
  128. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_point_shape.py +16 -4
  129. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_point_union.py +43 -11
  130. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_polytope_extract.py +4 -1
  131. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_polytope_extract_fdb.py +26 -5
  132. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_profiling_requesttree.py +4 -1
  133. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_quad_tree.py +66 -14
  134. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_quadtree_edge_cases.py +32 -7
  135. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_quadtree_indices.py +59 -14
  136. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_quadtree_optimisation.py +23 -5
  137. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_reduced_ll_grid.py +21 -5
  138. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_regular_grid.py +22 -6
  139. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_regular_reduced_grid.py +22 -5
  140. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_request_tree.py +3 -1
  141. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_reverse_transformation.py +6 -1
  142. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_shapes.py +44 -9
  143. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slice_date_range_fdb.py +52 -13
  144. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slice_date_range_fdb_v2.py +34 -8
  145. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slice_fdb_box.py +31 -7
  146. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slicer_era5.py +19 -3
  147. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slicer_xarray.py +13 -3
  148. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slicing_unsliceable_axis.py +19 -4
  149. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slicing_xarray_3D.py +125 -34
  150. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slicing_xarray_4D.py +102 -24
  151. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_snapping.py +25 -7
  152. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_snapping_real_data.py +16 -3
  153. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_tree_protobuf_encoding.py +9 -2
  154. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_tree_protobuf_encoding_fdb.py +31 -7
  155. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_type_change_transformation.py +28 -8
  156. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_union_gj.py +40 -10
  157. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_union_point_box.py +31 -7
  158. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_wave_spectra_data.py +32 -7
  159. polytope_python-2.1.1/mkdocs.yml +0 -44
  160. {polytope_python-2.1.1 → polytope_python-2.1.3}/.github/ci-config.yml +0 -0
  161. {polytope_python-2.1.1 → polytope_python-2.1.3}/.github/ci-hpc-config.yml +0 -0
  162. {polytope_python-2.1.1 → polytope_python-2.1.3}/.github/workflows/cd.yml +0 -0
  163. {polytope_python-2.1.1 → polytope_python-2.1.3}/.github/workflows/downstream-ci.yml +0 -0
  164. {polytope_python-2.1.1 → polytope_python-2.1.3}/.github/workflows/label-public-pr.yml +0 -0
  165. {polytope_python-2.1.1 → polytope_python-2.1.3}/.github/workflows/test-pypi.yml +0 -0
  166. {polytope_python-2.1.1 → polytope_python-2.1.3}/.gitignore +0 -0
  167. {polytope_python-2.1.1 → polytope_python-2.1.3}/.readthedocs.yaml +0 -0
  168. {polytope_python-2.1.1 → polytope_python-2.1.3}/ACKNOWLEDGEMENTS.rst +0 -0
  169. {polytope_python-2.1.1 → polytope_python-2.1.3}/CONTRIBUTING.rst +0 -0
  170. {polytope_python-2.1.1 → polytope_python-2.1.3}/LICENSE +0 -0
  171. {polytope_python-2.1.1 → polytope_python-2.1.3}/Makefile +0 -0
  172. {polytope_python-2.1.1 → polytope_python-2.1.3}/codecov.yml +0 -0
  173. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/API.md +0 -0
  174. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/Axis_types.md +0 -0
  175. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/Datacube.md +0 -0
  176. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/Overview.md +0 -0
  177. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/Slicer.md +0 -0
  178. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/images/Polytope_APIs_3.png +0 -0
  179. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/images/polytope_components_5.png +0 -0
  180. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/images/slicing_process.png +0 -0
  181. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Developer_Guide/shapes.md +0 -0
  182. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Overview/Overview.md +0 -0
  183. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Overview/Polytope_at_ECMWF.md +0 -0
  184. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Overview/images_overview/ecmwf_datacube.png +0 -0
  185. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/Overview/images_overview/ecmwf_polytope.png +0 -0
  186. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/User_Guide/Building_Features.md +0 -0
  187. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/User_Guide/Example.md +0 -0
  188. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/User_Guide/Getting_started.md +0 -0
  189. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/User_Guide/Overview.md +0 -0
  190. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Algorithm/User_Guide/images_users/shipping_route.png +0 -0
  191. /polytope_python-2.1.1/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/__init__.py → /polytope_python-2.1.3/docs/Server/Design.md +0 -0
  192. /polytope_python-2.1.1/polytope_feature/utility/__init__.py → /polytope_python-2.1.3/docs/Server/Overview.md +0 -0
  193. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Data_Portfolio.md +0 -0
  194. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Design_doc.md +0 -0
  195. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/OpenData/od_boundingbox_example.ipynb +0 -0
  196. /polytope_python-2.1.1/docs/Service/Examples/OpenData/od_polygon_example.ipynb → /polytope_python-2.1.3/docs/Service/Examples/OpenData/od_circle_example.ipynb +0 -0
  197. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/OpenData/od_country_example.ipynb +0 -0
  198. /polytope_python-2.1.1/docs/Service/Examples/OpenData/od_timeseries_example.ipynb → /polytope_python-2.1.3/docs/Service/Examples/OpenData/od_position_example.ipynb +0 -0
  199. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/OpenData/od_trajectory_example.ipynb +0 -0
  200. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/OpenData/od_vertical_profile_example.ipynb +0 -0
  201. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/boundingbox_example.ipynb +0 -0
  202. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/country_example.ipynb +0 -0
  203. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/polygon_example.ipynb +0 -0
  204. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/timeseries_example.ipynb +0 -0
  205. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/trajectory_example.ipynb +0 -0
  206. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Examples/vertical_profile_example.ipynb +0 -0
  207. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Features/boundingbox.md +0 -0
  208. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Features/polygon.md +0 -0
  209. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Features/trajectory.md +0 -0
  210. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Features/vertical_profile.md +0 -0
  211. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/Service/Quick_Start.md +0 -0
  212. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/extra.css +0 -0
  213. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/flight_path.png +0 -0
  214. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/greece.png +0 -0
  215. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/logo.gif +0 -0
  216. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/polytope_feature.png +0 -0
  217. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/polytope_logo_new_animated_AdobeExpress_3.gif +0 -0
  218. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/timeseries.png +0 -0
  219. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/timeseries_example.png +0 -0
  220. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/images/timeseries_qs.png +0 -0
  221. {polytope_python-2.1.1 → polytope_python-2.1.3}/docs/requirements.txt +0 -0
  222. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shp +0 -0
  223. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shx +0 -0
  224. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/Shipping-Lanes-v1.shp +0 -0
  225. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/Shipping-Lanes-v1.shx +0 -0
  226. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/World_Countries__Generalized_.shp +0 -0
  227. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/World_Countries__Generalized_.shx +0 -0
  228. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/earth_image.jpg +0 -0
  229. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/map_earth_4k.jpg +0 -0
  230. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/mars_req_9km_wind.req +0 -0
  231. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/mars_req_levels.req +0 -0
  232. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/mars_req_timeseries.req +0 -0
  233. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/output4.grib +0 -0
  234. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/output4.req +0 -0
  235. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/output8.grib +0 -0
  236. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/output8.req +0 -0
  237. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/temp_model_levels.grib +0 -0
  238. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/timeseries_t2m.grib +0 -0
  239. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/data/winds.grib +0 -0
  240. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/requirements_examples.txt +0 -0
  241. {polytope_python-2.1.1 → polytope_python-2.1.3}/examples/timeseries_example.py +0 -0
  242. {polytope_python-2.1.1 → polytope_python-2.1.3}/performance/fdb_scalability_plot.py +0 -0
  243. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/__init__.py +0 -0
  244. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/__init__.py +0 -0
  245. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/backends/__init__.py +0 -0
  246. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/backends/catalogue_helper.py +0 -0
  247. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/backends/mock.py +0 -0
  248. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/index_tree.proto +0 -0
  249. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/__init__.py +0 -0
  250. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_cyclic/__init__.py +0 -0
  251. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/__init__.py +0 -0
  252. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/__init__.py +0 -0
  253. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/unstructured.py +0 -0
  254. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_merger/__init__.py +0 -0
  255. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_reverse/__init__.py +0 -0
  256. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/transformations/datacube_type_change/__init__.py +0 -0
  257. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/datacube/tree_encoding.py +0 -0
  258. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/engine/__init__.py +0 -0
  259. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/utility/combinatorics.py +0 -0
  260. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/utility/list_tools.py +0 -0
  261. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_feature/utility/profiling.py +0 -0
  262. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_python.egg-info/dependency_links.txt +0 -0
  263. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_python.egg-info/requires.txt +0 -0
  264. {polytope_python-2.1.1 → polytope_python-2.1.3}/polytope_python.egg-info/top_level.txt +0 -0
  265. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/Cargo.toml +0 -0
  266. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/distance.rs +0 -0
  267. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/healpix_nested.rs +0 -0
  268. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/lambert_conformal.rs +0 -0
  269. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/lib.rs +0 -0
  270. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/list_tools.rs +0 -0
  271. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/octahedral.rs +0 -0
  272. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/point_in_polygon.rs +0 -0
  273. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/quadtree_mod.rs +0 -0
  274. {polytope_python-2.1.1 → polytope_python-2.1.3}/rust/src/slicing_tools.rs +0 -0
  275. {polytope_python-2.1.1 → polytope_python-2.1.3}/setup.cfg +0 -0
  276. {polytope_python-2.1.1 → polytope_python-2.1.3}/setup.py +0 -0
  277. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/fdb_data/schema +0 -0
  278. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/helper_functions.py +0 -0
  279. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/profiled_quadtree.profile +0 -0
  280. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_combinatorics.py +0 -0
  281. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_datacube_mock.py +0 -0
  282. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_hullslicer_engine.py +0 -0
  283. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_request_trees_after_slicing.py +0 -0
  284. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_shapes_volume.py +0 -0
  285. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_slicer_engine.py +0 -0
  286. {polytope_python-2.1.1 → polytope_python-2.1.3}/tests/test_tree_protobuf.py +0 -0
  287. {polytope_python-2.1.1 → polytope_python-2.1.3}/tox.ini +0 -0
@@ -1,16 +1,19 @@
1
+ default_language_version:
2
+ python: python3.10
3
+
1
4
  repos:
2
5
  - repo: https://github.com/pycqa/isort
3
- rev: 5.13.2
6
+ rev: 7.0.0
4
7
  hooks:
5
8
  - id: isort
6
9
  name: isort (python)
7
10
 
8
11
  - repo: https://github.com/psf/black
9
- rev: 24.8.0 # Use the latest version of black
12
+ rev: 26.1.0 # Use the latest version of black
10
13
  hooks:
11
14
  - id: black
12
15
 
13
16
  - repo: https://github.com/pycqa/flake8
14
- rev: 7.1.1 # Use the latest version of flake8
17
+ rev: 7.3.0 # Use the latest version of flake8
15
18
  hooks:
16
19
  - id: flake8
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polytope-python
3
- Version: 2.1.1
3
+ Version: 2.1.3
4
4
  Summary: Polytope datacube feature extraction library
5
5
  Author-email: "European Centre for Medium-Range Weather Forecasts (ECMWF)" <software.support@ecmwf.int>
6
6
  Maintainer-email: James Hawkes <James.Hawkes@ecmwf.int>, Mathilde Leuridan <Mathilde.Leuridan@ecmwf.int>
@@ -49,7 +49,7 @@ Dynamic: license-file
49
49
 
50
50
 
51
51
  <h3 align="center">
52
- <img src="./docs/images/polytope_logo_new_animated_AdobeExpress_3.gif" width=60%>
52
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/polytope_logo_new_animated_AdobeExpress_3.gif" width=60%>
53
53
  </br>
54
54
 
55
55
  </h3>
@@ -97,24 +97,24 @@ Polytope supports datacubes which have branching, non-uniform indexing, and even
97
97
  Polytope is designed to enable extraction of arbitrary extraction of data from a datacube. Instead of the typical range-based bounding-box approach, Polytope can extract any shape of data from a datacube using a "polytope" (*n*-dimensional polygon) stencil.
98
98
 
99
99
  <p align="center">
100
- <img src="./docs/Algorithm/Overview/images_overview/ecmwf_polytope.png" alt="Polytope Concept" width="450"/>
100
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop//docs/Algorithm/Overview/images_overview/ecmwf_polytope.png" alt="Polytope Concept" width="450"/>
101
101
  </p>
102
102
 
103
103
  The Polytope algorithm can for example be used to extract:
104
104
 
105
105
  - 2D cut-outs, such as country cut-outs, from a datacube
106
106
  <p align="center">
107
- <img src="./docs/images/greece.png" alt="Greece cut-out" width="250"/>
107
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/greece.png" alt="Greece cut-out" width="250"/>
108
108
  </p>
109
109
 
110
110
  - timeseries from a datacube
111
111
  <p align="center">
112
- <img src="./docs/images/timeseries.png" alt="Timeseries" width="350"/>
112
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/timeseries.png" alt="Timeseries" width="350"/>
113
113
  </p>
114
114
 
115
115
  - more complicated spatio-temporal paths, such as flight paths, from a datacube
116
116
  <p align="center">
117
- <img src="./docs/images/flight_path.png" alt="Flight path" width="350"/>
117
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/flight_path.png" alt="Flight path" width="350"/>
118
118
  </p>
119
119
 
120
120
  - and many more high-dimensional shapes in arbitrary dimensions...
@@ -239,7 +239,7 @@ does it submit to any jurisdiction.
239
239
 
240
240
  If this software is useful in your work, please consider citing our paper as
241
241
 
242
- > Leuridan, M., Hawkes, J., Smart, S., Danovaro, E., and Quintino, T., [Polytope: An Algorithm for Efficient Feature Extraction on Hypercubes](https://arxiv.org/abs/2306.11553), <i>arXiv e-prints</i>, 2023. doi:10.48550/arXiv.2306.11553.
242
+ > Leuridan, M., Hawkes, J., Smart, S., Danovaro, E., & Quintino, T. (2025, November). [Polytope: An Algorithm for Efficient Feature Extraction on Hypercubes.](https://link.springer.com/article/10.1186/s40537-025-01306-3) In Journal of Big Data (pp. 1-25).
243
243
 
244
244
  Other papers include:
245
245
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  <h3 align="center">
3
- <img src="./docs/images/polytope_logo_new_animated_AdobeExpress_3.gif" width=60%>
3
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/polytope_logo_new_animated_AdobeExpress_3.gif" width=60%>
4
4
  </br>
5
5
 
6
6
  </h3>
@@ -48,24 +48,24 @@ Polytope supports datacubes which have branching, non-uniform indexing, and even
48
48
  Polytope is designed to enable extraction of arbitrary extraction of data from a datacube. Instead of the typical range-based bounding-box approach, Polytope can extract any shape of data from a datacube using a "polytope" (*n*-dimensional polygon) stencil.
49
49
 
50
50
  <p align="center">
51
- <img src="./docs/Algorithm/Overview/images_overview/ecmwf_polytope.png" alt="Polytope Concept" width="450"/>
51
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop//docs/Algorithm/Overview/images_overview/ecmwf_polytope.png" alt="Polytope Concept" width="450"/>
52
52
  </p>
53
53
 
54
54
  The Polytope algorithm can for example be used to extract:
55
55
 
56
56
  - 2D cut-outs, such as country cut-outs, from a datacube
57
57
  <p align="center">
58
- <img src="./docs/images/greece.png" alt="Greece cut-out" width="250"/>
58
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/greece.png" alt="Greece cut-out" width="250"/>
59
59
  </p>
60
60
 
61
61
  - timeseries from a datacube
62
62
  <p align="center">
63
- <img src="./docs/images/timeseries.png" alt="Timeseries" width="350"/>
63
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/timeseries.png" alt="Timeseries" width="350"/>
64
64
  </p>
65
65
 
66
66
  - more complicated spatio-temporal paths, such as flight paths, from a datacube
67
67
  <p align="center">
68
- <img src="./docs/images/flight_path.png" alt="Flight path" width="350"/>
68
+ <img src="https://raw.githubusercontent.com/ecmwf/polytope/develop/docs/images/flight_path.png" alt="Flight path" width="350"/>
69
69
  </p>
70
70
 
71
71
  - and many more high-dimensional shapes in arbitrary dimensions...
@@ -190,7 +190,7 @@ does it submit to any jurisdiction.
190
190
 
191
191
  If this software is useful in your work, please consider citing our paper as
192
192
 
193
- > Leuridan, M., Hawkes, J., Smart, S., Danovaro, E., and Quintino, T., [Polytope: An Algorithm for Efficient Feature Extraction on Hypercubes](https://arxiv.org/abs/2306.11553), <i>arXiv e-prints</i>, 2023. doi:10.48550/arXiv.2306.11553.
193
+ > Leuridan, M., Hawkes, J., Smart, S., Danovaro, E., & Quintino, T. (2025, November). [Polytope: An Algorithm for Efficient Feature Extraction on Hypercubes.](https://link.springer.com/article/10.1186/s40537-025-01306-3) In Journal of Big Data (pp. 1-25).
194
194
 
195
195
  Other papers include:
196
196
 
@@ -0,0 +1,29 @@
1
+ Polytope Client
2
+ ====================================
3
+
4
+ Polytope is an open-source web service designed to provide efficient access to hypercubes of data in scientific analysis workflows, and is able to federate access between hypercubes in distributed computing resources. It is designed to couple data-centric workflows operating across multiple platforms (HPC, cloud) and across multiple distributed sites.
5
+
6
+ Users can access the Polytope service via the REST API exposed by Polytope, or via the polytope-client Python package. The client includes a Python API and a command line tool (CLI) for accessing Polytope services.
7
+
8
+ We now recommend that users access the Polytope Service via [earthkit-data](https://earthkit-data.readthedocs.io/en/latest/examples/polytope.html).
9
+
10
+
11
+ Features
12
+ --------
13
+
14
+ * Efficient web-based access to a variety of datacube datasources under a common API
15
+ * Robust role-based and attribute-based access control, including quality-of-service limits
16
+ * Micro-service design, able to be deployed and scaled on Kubernetes and Docker Swarm
17
+ * Compatible and extendable to a variety of authentication providers (e.g. Keycloak, LDAP, SSO)
18
+ * Federation of multiple Polytope instances, connecting distributed storage infrastructure
19
+ * Server-side polytope-based subsetting and feature extraction
20
+
21
+
22
+ License
23
+ -------
24
+
25
+ *Polytope* is available under the open source `Apache License`. In applying this licence, ECMWF does not waive the privileges and immunities granted to it by virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
26
+
27
+ http://www.apache.org/licenses/LICENSE-2.0.html
28
+
29
+ Polytope has been developed at ECMWF as part of the EU projects [LEXIS](https://lexis-project.eu/web/) and [HiDALGO](https://hidalgo-project.eu/). The LEXIS and HiDALGO projects have received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreements No. 825532 and No. 824115.