polytope-python 2.0.4__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.0.4 → polytope_python-2.1.1}/.gitignore +3 -0
- {polytope_python-2.0.4/polytope_python.egg-info → polytope_python-2.1.1}/PKG-INFO +1 -1
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/_version.py +1 -1
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/fdb.py +23 -14
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/local_regular.py +42 -20
- {polytope_python-2.0.4 → polytope_python-2.1.1/polytope_python.egg-info}/PKG-INFO +1 -1
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.github/ci-config.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.github/ci-hpc-config.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.github/workflows/cd.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.github/workflows/downstream-ci.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.github/workflows/label-public-pr.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.github/workflows/test-pypi.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.pre-commit-config.yaml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/.readthedocs.yaml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/ACKNOWLEDGEMENTS.rst +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/CONTRIBUTING.rst +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/LICENSE +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/Makefile +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/README.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/codecov.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/API.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Axis_types.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Datacube.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Overview.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/Slicer.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/images/Polytope_APIs_3.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/images/polytope_components_5.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/images/slicing_process.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Developer_Guide/shapes.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Overview/Overview.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Overview/Polytope_at_ECMWF.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Overview/images_overview/ecmwf_datacube.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/Overview/images_overview/ecmwf_polytope.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Building_Features.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Example.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Getting_started.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Overview.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/images_users/shipping_route.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Data_Portfolio.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Design_doc.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_boundingbox_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_country_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_polygon_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_timeseries_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_trajectory_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/OpenData/od_vertical_profile_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/boundingbox_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/country_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/examples.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/polygon_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/timeseries_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/trajectory_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/vertical_profile_example.ipynb +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Features/boundingbox.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Features/feature.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Features/polygon.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Features/timeseries.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Features/trajectory.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Features/vertical_profile.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Installation.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Overview.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Quick_Start.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/extra.css +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/flight_path.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/greece.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/logo.gif +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/polytope_feature.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/polytope_logo_new_animated_AdobeExpress_3.gif +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/timeseries.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/timeseries_example.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/images/timeseries_qs.png +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/index.md +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/docs/requirements.txt +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/3D_shipping_route.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/3D_shipping_route_wave_model.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/4D_flight_path.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/country_slicing.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/cyclic_route_around_earth.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shp +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shx +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/Shipping-Lanes-v1.shp +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/Shipping-Lanes-v1.shx +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shp +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shx +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/earth_image.jpg +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/map_earth_4k.jpg +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/mars_req_9km_wind.req +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/mars_req_levels.req +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/mars_req_timeseries.req +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/output4.grib +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/output4.req +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/output8.grib +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/output8.req +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/temp_model_levels.grib +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/timeseries_t2m.grib +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/data/winds.grib +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/healpix_grid_box_example.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/octahedral_grid_box_example.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/octahedral_grid_country_example.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/plotting_country_data.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/read_me_example.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/requirements_examples.txt +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/slicing_all_ecmwf_countries.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/timeseries_example.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/examples/wind_farms.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/mkdocs.yml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/fdb_performance.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/fdb_performance_3D.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/fdb_scalability_plot.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/fdb_slice_many_numbers_timeseries.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/performance_many_num_steps.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/plotting_scalability.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/scalability_test.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance/scalability_test_2.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance_unstructured/octahedral_vs_unstructured_slicing.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/performance_unstructured/plot_structured_vs_unstructured_slicing.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/catalogue_helper.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/datacube.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/mock.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/xarray.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/datacube_axis.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/index_tree.proto +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/index_tree_pb2.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/quadtree/quad_tree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/quadtree/quadtree_additional_operations.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/tensor_index_tree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_cyclic/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_cyclic/datacube_cyclic.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/datacube_mappers.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/healpix_nested.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/icon.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/lambert_conformal.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/irregular_mapper_types/unstructured.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/octahedral.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_gaussian.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/reduced_ll.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_mappers/mapper_types/regular.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_merger/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_merger/datacube_merger.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_reverse/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_reverse/datacube_reverse.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_transformations.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_type_change/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/transformations/datacube_type_change/datacube_type_change.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/tree_encoding.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/engine.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/hullslicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/optimised_point_in_polygon_slicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/optimised_quadtree_slicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/point_in_polygon_slicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/quadtree_slicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/slicing_tools.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/options.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/polytope.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/shapes.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/__init__.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/combinatorics.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/engine_tools.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/exceptions.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/geometry.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/list_tools.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/utility/profiling.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_python.egg-info/SOURCES.txt +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_python.egg-info/dependency_links.txt +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_python.egg-info/requires.txt +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_python.egg-info/top_level.txt +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/pyproject.toml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/Cargo.toml +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/distance.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/healpix_nested.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/lambert_conformal.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/lib.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/list_tools.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/octahedral.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/point_in_polygon.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/quadtree_mod.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/rust/src/slicing_tools.rs +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/setup.cfg +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/setup.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/conftest.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/fdb_data/schema +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/helper_functions.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/profiled_quadtree.profile +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/quadtree_slicer_profiler.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_axis_mappers.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_bad_request_error.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_combinatorics.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_cyclic_axis_over_negative_vals.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_cyclic_axis_slicer_not_0.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_cyclic_axis_slicing.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_cyclic_nearest.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_cyclic_simple.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_cyclic_snapping.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_datacube_axes_init.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_datacube_mock.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_datacube_xarray.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_date_time_unmerged.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_ecmwf_oper_data_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_engine_slicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_fdb_datacube.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_fdb_unmap_tree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_float_type.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_healpix_mapper.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_healpix_nested_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_hull_slicer.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_hullslicer_engine.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_icon_grid_unstructured.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_icon_grid_unstructured_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_incomplete_tree_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_lambert_lam_grid_unstructured_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_lambert_lam_grid_unstructured_fdb_optimised_quadtree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_local_grid_cyclic.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_local_regular_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_local_swiss_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_mappers.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_merge_cyclic_octahedral.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_merge_octahedral_one_axis.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_merge_transformation.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_multiple_param_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_octahedral_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_orca_irregular_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_orca_irregular_grid_optimised_point_in_polygon.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_orca_irregular_grid_point_in_polygon.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_override_md5_hash_options.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_point_nearest.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_point_shape.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_point_union.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_polytope_extract.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_polytope_extract_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_profiling_requesttree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_quad_tree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_quadtree_edge_cases.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_quadtree_indices.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_quadtree_optimisation.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_reduced_ll_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_regular_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_regular_reduced_grid.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_request_tree.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_request_trees_after_slicing.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_reverse_transformation.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_shapes.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_shapes_volume.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slice_date_range_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slice_date_range_fdb_v2.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slice_fdb_box.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slicer_engine.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slicer_era5.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slicer_xarray.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slicing_unsliceable_axis.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slicing_xarray_3D.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_slicing_xarray_4D.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_snapping.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_snapping_real_data.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_tree_protobuf.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_tree_protobuf_encoding.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_tree_protobuf_encoding_fdb.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_type_change_transformation.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_union_gj.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_union_point_box.py +0 -0
- {polytope_python-2.0.4 → polytope_python-2.1.1}/tests/test_wave_spectra_data.py +0 -0
- {polytope_python-2.0.4 → 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.
|
|
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.
|
|
2
|
+
__version__ = "2.1.1"
|
|
@@ -219,28 +219,32 @@ class FDBDatacube(Datacube):
|
|
|
219
219
|
|
|
220
220
|
def remove_duplicates_in_request_ranges(self, fdb_node_ranges, current_start_idxs):
|
|
221
221
|
seen_indices = set()
|
|
222
|
+
new_fdb_node_ranges = []
|
|
223
|
+
new_current_start_idxs = []
|
|
222
224
|
for i, idxs_list in enumerate(current_start_idxs):
|
|
225
|
+
new_idx_group = []
|
|
226
|
+
new_fdb_group = []
|
|
223
227
|
for k, sub_lat_idxs in enumerate(idxs_list):
|
|
224
228
|
actual_fdb_node = fdb_node_ranges[i][k]
|
|
225
|
-
|
|
226
|
-
|
|
229
|
+
original_vals = []
|
|
230
|
+
filtered_idxs = []
|
|
227
231
|
for j, idx in enumerate(sub_lat_idxs):
|
|
228
232
|
if idx not in seen_indices:
|
|
229
|
-
# NOTE: need to remove it from the values in the corresponding tree node
|
|
230
|
-
# NOTE: need to read just the range we give to gj
|
|
231
|
-
original_fdb_node_range_vals.append(actual_fdb_node[0].values[j])
|
|
232
233
|
seen_indices.add(idx)
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
filtered_idxs.append(idx)
|
|
235
|
+
original_vals.append(actual_fdb_node[0].values[j])
|
|
236
|
+
if filtered_idxs:
|
|
237
|
+
# keep only if we had values still
|
|
238
|
+
actual_fdb_node[0].values = tuple(original_vals)
|
|
239
|
+
new_idx_group.append(filtered_idxs)
|
|
240
|
+
new_fdb_group.append(actual_fdb_node)
|
|
236
241
|
else:
|
|
237
|
-
#
|
|
242
|
+
# remove this node because we removed all values
|
|
238
243
|
actual_fdb_node[0].remove_branch()
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
return (fdb_node_ranges, current_start_idxs)
|
|
244
|
+
new_current_start_idxs.append(new_idx_group)
|
|
245
|
+
new_fdb_node_ranges.append(new_fdb_group)
|
|
246
|
+
|
|
247
|
+
return new_fdb_node_ranges, new_current_start_idxs
|
|
244
248
|
|
|
245
249
|
def nearest_lat_lon_search(self, requests):
|
|
246
250
|
if len(self.nearest_search) != 0:
|
|
@@ -341,6 +345,9 @@ class FDBDatacube(Datacube):
|
|
|
341
345
|
# TODO: change this to accommodate non consecutive indexes being compressed too
|
|
342
346
|
current_idx[i].extend(key_value_path["values"])
|
|
343
347
|
fdb_range_n[i].append(c)
|
|
348
|
+
assert len(current_idx) == len(fdb_range_n)
|
|
349
|
+
for i, node in enumerate(fdb_range_n):
|
|
350
|
+
assert len(node[0].values) == len(current_idx[i])
|
|
344
351
|
return (current_idx, fdb_range_n)
|
|
345
352
|
|
|
346
353
|
def assign_fdb_output_to_nodes(self, output_iterator, fdb_requests_decoding_info):
|
|
@@ -363,6 +370,8 @@ class FDBDatacube(Datacube):
|
|
|
363
370
|
(new_fdb_node_ranges, new_current_start_idx) = self.remove_duplicates_in_request_ranges(
|
|
364
371
|
fdb_node_ranges, current_start_idx
|
|
365
372
|
)
|
|
373
|
+
current_start_idx = new_current_start_idx
|
|
374
|
+
fdb_node_ranges = new_fdb_node_ranges
|
|
366
375
|
interm_request_ranges = []
|
|
367
376
|
# TODO: modify the start indexes to have as many arrays as the request ranges
|
|
368
377
|
new_fdb_node_ranges = []
|
|
@@ -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.
|
|
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.0.4 → 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.0.4 → 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.0.4 → polytope_python-2.1.1}/docs/Algorithm/User_Guide/Building_Features.md
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.0.4 → 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.0.4 → 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.0.4 → polytope_python-2.1.1}/docs/Service/Examples/timeseries_example.ipynb
RENAMED
|
File without changes
|
{polytope_python-2.0.4 → polytope_python-2.1.1}/docs/Service/Examples/trajectory_example.ipynb
RENAMED
|
File without changes
|
{polytope_python-2.0.4 → 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.0.4 → polytope_python-2.1.1}/examples/data/EMODnet_HA_WindFarms_pg_20220324.shp
RENAMED
|
File without changes
|
{polytope_python-2.0.4 → 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.0.4 → polytope_python-2.1.1}/examples/data/World_Countries__Generalized_.shp
RENAMED
|
File without changes
|
{polytope_python-2.0.4 → 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.0.4 → 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.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/backends/datacube.py
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.0.4 → 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.0.4 → polytope_python-2.1.1}/polytope_feature/datacube/quadtree/quad_tree.py
RENAMED
|
File without changes
|
|
File without changes
|
{polytope_python-2.0.4 → 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.0.4 → polytope_python-2.1.1}/polytope_feature/engine/optimised_quadtree_slicer.py
RENAMED
|
File without changes
|
{polytope_python-2.0.4 → polytope_python-2.1.1}/polytope_feature/engine/point_in_polygon_slicer.py
RENAMED
|
File without changes
|