polytope-python 2.1.0__tar.gz → 2.1.1__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.
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.gitignore +3 -0
- {polytope_python-2.1.0/polytope_python.egg-info → polytope_python-2.1.1}/PKG-INFO +1 -1
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/_version.py +1 -1
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/local_regular.py +42 -20
- {polytope_python-2.1.0 → polytope_python-2.1.1/polytope_python.egg-info}/PKG-INFO +1 -1
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.github/ci-config.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.github/ci-hpc-config.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.github/workflows/cd.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.github/workflows/downstream-ci.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.github/workflows/label-public-pr.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.github/workflows/test-pypi.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.pre-commit-config.yaml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/.readthedocs.yaml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/ACKNOWLEDGEMENTS.rst +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/CONTRIBUTING.rst +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/LICENSE +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/Makefile +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/README.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/codecov.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/API.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Axis_types.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Datacube.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Overview.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Slicer.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/images/Polytope_APIs_3.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/images/polytope_components_5.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/images/slicing_process.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/shapes.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Overview/Overview.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Overview/Polytope_at_ECMWF.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Overview/images_overview/ecmwf_datacube.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Overview/images_overview/ecmwf_polytope.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Building_Features.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Example.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Getting_started.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Overview.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/images_users/shipping_route.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Data_Portfolio.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Design_doc.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_boundingbox_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_country_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_polygon_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_timeseries_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_trajectory_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_vertical_profile_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/boundingbox_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/country_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/examples.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/polygon_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/timeseries_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/trajectory_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/vertical_profile_example.ipynb +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Features/boundingbox.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Features/feature.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Features/polygon.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Features/timeseries.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Features/trajectory.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Features/vertical_profile.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Installation.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Overview.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Quick_Start.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/extra.css +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/flight_path.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/greece.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/logo.gif +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/polytope_feature.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/polytope_logo_new_animated_AdobeExpress_3.gif +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/timeseries.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/timeseries_example.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/images/timeseries_qs.png +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/index.md +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/docs/requirements.txt +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/3D_shipping_route.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/3D_shipping_route_wave_model.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/4D_flight_path.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/country_slicing.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/cyclic_route_around_earth.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shp +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shx +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/Shipping-Lanes-v1.shp +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/Shipping-Lanes-v1.shx +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shp +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shx +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/earth_image.jpg +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/map_earth_4k.jpg +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/mars_req_9km_wind.req +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/mars_req_levels.req +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/mars_req_timeseries.req +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/output4.grib +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/output4.req +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/output8.grib +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/output8.req +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/temp_model_levels.grib +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/timeseries_t2m.grib +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/winds.grib +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/healpix_grid_box_example.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/octahedral_grid_box_example.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/octahedral_grid_country_example.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/plotting_country_data.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/read_me_example.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/requirements_examples.txt +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/slicing_all_ecmwf_countries.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/timeseries_example.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/examples/wind_farms.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/mkdocs.yml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/fdb_performance.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/fdb_performance_3D.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/fdb_scalability_plot.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/fdb_slice_many_numbers_timeseries.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/performance_many_num_steps.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/plotting_scalability.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/scalability_test.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance/scalability_test_2.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance_unstructured/octahedral_vs_unstructured_slicing.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/performance_unstructured/plot_structured_vs_unstructured_slicing.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/catalogue_helper.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/datacube.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/mock.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/xarray.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/datacube_axis.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/index_tree.proto +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/index_tree_pb2.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/quadtree/quad_tree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/quadtree/quadtree_additional_operations.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/tensor_index_tree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_cyclic/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_cyclic/datacube_cyclic.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/datacube_mappers.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/icon.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/lambert_conformal.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/unstructured.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/octahedral.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_gaussian.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_ll.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/regular.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_merger/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_reverse/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_reverse/datacube_reverse.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_transformations.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_type_change/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_type_change/datacube_type_change.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/tree_encoding.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/engine.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/hullslicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/optimised_point_in_polygon_slicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/optimised_quadtree_slicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/point_in_polygon_slicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/quadtree_slicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/slicing_tools.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/options.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/polytope.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/shapes.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/__init__.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/combinatorics.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/engine_tools.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/exceptions.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/geometry.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/list_tools.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/utility/profiling.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_python.egg-info/SOURCES.txt +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_python.egg-info/dependency_links.txt +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_python.egg-info/requires.txt +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_python.egg-info/top_level.txt +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/pyproject.toml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/Cargo.toml +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/distance.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/healpix_nested.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/lambert_conformal.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/lib.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/list_tools.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/octahedral.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/point_in_polygon.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/quadtree_mod.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/rust/src/slicing_tools.rs +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/setup.cfg +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/setup.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/conftest.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/fdb_data/schema +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/helper_functions.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/profiled_quadtree.profile +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/quadtree_slicer_profiler.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_axis_mappers.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_bad_request_error.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_combinatorics.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_cyclic_axis_over_negative_vals.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_cyclic_axis_slicer_not_0.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_cyclic_axis_slicing.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_cyclic_nearest.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_cyclic_simple.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_cyclic_snapping.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_datacube_axes_init.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_datacube_mock.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_datacube_xarray.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_date_time_unmerged.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_ecmwf_oper_data_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_engine_slicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_fdb_datacube.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_fdb_unmap_tree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_float_type.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_healpix_mapper.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_healpix_nested_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_hull_slicer.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_hullslicer_engine.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_icon_grid_unstructured.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_icon_grid_unstructured_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_incomplete_tree_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_lambert_lam_grid_unstructured_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_lambert_lam_grid_unstructured_fdb_optimised_quadtree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_local_grid_cyclic.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_local_regular_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_local_swiss_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_mappers.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_merge_cyclic_octahedral.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_merge_octahedral_one_axis.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_merge_transformation.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_multiple_param_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_octahedral_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_orca_irregular_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_orca_irregular_grid_optimised_point_in_polygon.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_orca_irregular_grid_point_in_polygon.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_override_md5_hash_options.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_point_nearest.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_point_shape.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_point_union.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_polytope_extract.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_polytope_extract_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_profiling_requesttree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_quad_tree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_quadtree_edge_cases.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_quadtree_indices.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_quadtree_optimisation.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_reduced_ll_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_regular_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_regular_reduced_grid.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_request_tree.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_request_trees_after_slicing.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_reverse_transformation.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_shapes.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_shapes_volume.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slice_date_range_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slice_date_range_fdb_v2.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slice_fdb_box.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slicer_engine.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slicer_era5.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slicer_xarray.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slicing_unsliceable_axis.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slicing_xarray_3D.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_slicing_xarray_4D.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_snapping.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_snapping_real_data.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_tree_protobuf.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_tree_protobuf_encoding.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_tree_protobuf_encoding_fdb.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_type_change_transformation.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_union_gj.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_union_point_box.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tests/test_wave_spectra_data.py +0 -0
- {polytope_python-2.1.0 → polytope_python-2.1.1}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: polytope-python
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
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>
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
# Do not change! Do not track in version control!
|
|
2
|
-
__version__ = "2.1.
|
|
2
|
+
__version__ = "2.1.1"
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import bisect
|
|
2
2
|
|
|
3
|
+
import numpy as np
|
|
4
|
+
|
|
3
5
|
from ..datacube_mappers import DatacubeMapper
|
|
4
6
|
|
|
5
7
|
|
|
@@ -45,15 +47,28 @@ class LocalRegularGridMapper(DatacubeMapper):
|
|
|
45
47
|
if self._axis_reversed[mapped_axes[1]]:
|
|
46
48
|
raise NotImplementedError("Local regular grid with second axis in decreasing order is not supported")
|
|
47
49
|
|
|
50
|
+
self._second_axis_vals = np.arange(
|
|
51
|
+
self._second_axis_min,
|
|
52
|
+
self._second_axis_min + self._second_deg_increment * (self.second_resolution + 1),
|
|
53
|
+
self._second_deg_increment,
|
|
54
|
+
dtype=np.float64,
|
|
55
|
+
)
|
|
56
|
+
|
|
48
57
|
def first_axis_vals(self):
|
|
49
58
|
if self._axis_reversed[self._mapped_axes[0]]:
|
|
50
|
-
first_ax_vals =
|
|
51
|
-
self._first_axis_max
|
|
52
|
-
|
|
59
|
+
first_ax_vals = np.arange(
|
|
60
|
+
self._first_axis_max,
|
|
61
|
+
self._first_axis_max - self._first_deg_increment * (self.first_resolution + 1),
|
|
62
|
+
-self._first_deg_increment,
|
|
63
|
+
dtype=np.float64,
|
|
64
|
+
)
|
|
53
65
|
else:
|
|
54
|
-
first_ax_vals =
|
|
55
|
-
self._first_axis_min
|
|
56
|
-
|
|
66
|
+
first_ax_vals = np.arange(
|
|
67
|
+
self._first_axis_min,
|
|
68
|
+
self._first_axis_min + self._first_deg_increment * (self.first_resolution + 1),
|
|
69
|
+
self._first_deg_increment,
|
|
70
|
+
dtype=np.float64,
|
|
71
|
+
)
|
|
57
72
|
return first_ax_vals
|
|
58
73
|
|
|
59
74
|
def map_first_axis(self, lower, upper):
|
|
@@ -62,10 +77,7 @@ class LocalRegularGridMapper(DatacubeMapper):
|
|
|
62
77
|
return return_vals
|
|
63
78
|
|
|
64
79
|
def second_axis_vals(self, first_val):
|
|
65
|
-
|
|
66
|
-
self._second_axis_min + i * self._second_deg_increment for i in range(self.second_resolution + 1)
|
|
67
|
-
]
|
|
68
|
-
return second_ax_vals
|
|
80
|
+
return self._second_axis_vals
|
|
69
81
|
|
|
70
82
|
def map_second_axis(self, first_val, lower, upper):
|
|
71
83
|
axis_lines = self.second_axis_vals(first_val)
|
|
@@ -89,16 +101,26 @@ class LocalRegularGridMapper(DatacubeMapper):
|
|
|
89
101
|
return first_idx * self.second_resolution
|
|
90
102
|
|
|
91
103
|
def unmap(self, first_val, second_vals, unmapped_idx=None):
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
104
|
+
first_array = self._first_axis_vals
|
|
105
|
+
second_array = self._second_axis_vals
|
|
106
|
+
second_vals = np.asarray(second_vals)
|
|
107
|
+
descending = self._axis_reversed[self._mapped_axes[0]]
|
|
108
|
+
if descending:
|
|
109
|
+
# right descending order for searchsorted
|
|
110
|
+
first_idx = np.searchsorted(first_array[::-1], first_val[0])
|
|
111
|
+
first_idx = len(first_array) - 1 - first_idx
|
|
112
|
+
else:
|
|
113
|
+
first_idx = np.searchsorted(first_array, first_val[0])
|
|
114
|
+
if first_idx > 0 and first_idx < len(first_array):
|
|
115
|
+
left_val = first_array[first_idx - 1]
|
|
116
|
+
right_val = first_array[first_idx]
|
|
117
|
+
if abs(first_val[0] - left_val) < abs(first_val[0] - right_val):
|
|
118
|
+
first_idx -= 1
|
|
119
|
+
second_idxs = np.searchsorted(second_array, second_vals)
|
|
120
|
+
|
|
121
|
+
# map to grid idx
|
|
122
|
+
final_idxs = first_idx * (self.second_resolution + 1) + second_idxs
|
|
123
|
+
return final_idxs
|
|
102
124
|
|
|
103
125
|
|
|
104
126
|
# md5 grid hash in form {resolution : hash}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: polytope-python
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Axis_types.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/Overview/Polytope_at_ECMWF.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Building_Features.md
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Getting_started.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/boundingbox_example.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/timeseries_example.ipynb
RENAMED
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/trajectory_example.ipynb
RENAMED
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/docs/Service/Examples/vertical_profile_example.ipynb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shp
RENAMED
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shp
RENAMED
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/performance/fdb_slice_many_numbers_timeseries.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/datacube.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/backends/xarray.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/quadtree/quad_tree.py
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/datacube/tensor_index_tree.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/optimised_quadtree_slicer.py
RENAMED
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_feature/engine/point_in_polygon_slicer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{polytope_python-2.1.0 → polytope_python-2.1.1}/polytope_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|