anuga 1.3.5__zip
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.
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__config__.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__config__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__init__.py +363 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__metadata__.py +6 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__metadata__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/__init__.py +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/ermapper_grids.py +251 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/ermapper_grids.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/file_function.py +483 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/file_function.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/gauge.py +1080 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/gauge.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/general_mesh.py +865 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/general_mesh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_boundary_conditions.py +862 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_boundary_conditions.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_domain.py +2274 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_domain.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory.py +1011 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh.py +1488 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_table_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain.py +299 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity.py +2162 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/region.py +321 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/region.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/setup.py +48 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tag_region.py +167 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tag_region.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/show_balanced_limiters.py +87 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_ermapper.py +189 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_gauge.py +539 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_general_mesh.py +517 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_generic_boundary_conditions.py +439 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_generic_domain.py +907 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_ghost.py +52 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_neighbour_mesh.py +1854 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_pmesh2domain.py +219 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_quantity.py +2859 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_region.py +99 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_tag_region.py +258 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_util.py +1632 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/util.py +928 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/util.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/__init__.py +12 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection.py +298 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/setup.py +27 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/tests/test_advection.py +183 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/__init__.py +4 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/alpha_shape.py +654 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/alpha_shape.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/tests/test_alpha_shape.py +402 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/anuga_exceptions.py +46 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/anuga_exceptions.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/__init__.py +18 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/caching.py +2531 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/caching.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/dummy_classes_for_testing.py +20 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/dummy_classes_for_testing.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/tests/test_caching.py +895 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/compile_all.py +82 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/compile_all.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/config.py +273 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/config.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/__init__.py +6 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/geo_reference.py +478 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/geo_reference.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/lat_long_UTM_conversion.py +250 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/lat_long_UTM_conversion.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/point.py +128 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/point.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/redfearn.py +233 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/redfearn.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points.csv +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z53.csv +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z53.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z54.csv +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z54.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/redfearn.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/redfearn.xls +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_geo_reference.py +716 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_lat_long_UTM_conversion.py +126 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_point.py +125 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_redfearn.py +508 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/__init__.py +9 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_class.py +1627 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_class.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_polygons.py +114 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_polygons.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_routines.py +362 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_routines.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/new_culvert_class.py +1630 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/new_culvert_class.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/culvert_polygons_example.py +38 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve.csv +20 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve2.csv +20 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve2.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/unittests.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/unittests.xls +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/run_culvert_flat_water_lev.py +173 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_class.py +812 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_polygons.py +84 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines.py +586 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_box_10pct.py +342 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_box_1pct.py +342 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_pipe_10pct.py +338 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_pipe_1pct.py +338 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_new_culvert_class.py +810 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/__init__.py +9 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/exposure.py +223 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/exposure.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/inundation_damage.py +467 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/inundation_damage.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/test_exposure.py +325 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/test_inundation_damage.py +610 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/error_api.py +130 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/error_api.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/extras.py +193 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/extras.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/__init__.py +54 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/csv_file.py +399 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/csv_file.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/mux.py +120 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/mux.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/netcdf.py +266 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/netcdf.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/pts.py +29 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/pts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/setup.py +27 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sts.py +293 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sww.py +1552 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sww.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_csv.py +413 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_mux.py +1539 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_read_sww.py +350 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_sww.py +560 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_ungenerate.py +283 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_urs.py +217 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/ungenerate.py +92 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/ungenerate.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs.py +323 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/__init__.py +20 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/asc2dem.py +213 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/asc2dem.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/calc_grid_values_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/csv2sts.py +165 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/csv2sts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2array.py +90 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2array.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2dem.py +145 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2dem.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2pts.py +357 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2pts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/esri2sww.py +327 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/esri2sww.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/ferret2sww.py +436 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/ferret2sww.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/file_conversion.py +367 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/file_conversion.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/grd2array.py +122 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/grd2array.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sdf2pts.py +181 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sdf2pts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/setup.py +29 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sts2sww_mesh.py +141 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sts2sww_mesh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2array.py +321 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2array.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem.py +550 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem_new.py +547 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem_new.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2pts.py +175 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2pts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_2pts.py +249 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_csv2sts.py +118 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2array.py +121 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2dem.py +220 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2pts.py +411 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_file_conversion.py +953 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_grd2array.py +270 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_sww2dem.py +1882 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_urs2sts.py +2127 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_urs2sww.py +628 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2nc.py +202 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2nc.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sts.py +316 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sww.py +306 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sww.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2txt.py +71 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2txt.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/xya2pts.py +39 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/xya2pts.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/__init__.py +12 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/benchmark_least_squares.py +367 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/benchmark_least_squares.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fit.py +611 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fit.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fitsmooth.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/general_fit_interpolate.py +127 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/general_fit_interpolate.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate.py +1144 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate2d.py +305 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate2d.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/profile_long_benchmark.py +79 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/profile_long_benchmark.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/run_long_benchmark.py +131 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/run_long_benchmark.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/setup.py +37 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_fit.py +1150 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_interpolate.py +1952 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_interpolate2d.py +469 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_search_functions.py +236 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/ticket178_benchmark.py +66 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/ticket178_benchmark.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/__init__.py +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/aabb.py +133 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/aabb.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon.py +1138 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_function.py +133 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_function.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/quad.py +190 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/quad.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/setup.py +27 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/test_geometry.py +110 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/test_polygon.py +1994 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/__init__.py +9 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/geospatial_data.py +1698 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/geospatial_data.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/tests/test_geospatial_data.py +1853 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/__init__.py +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/add_csv_header.py +136 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/add_csv_header.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/file_length.py +14 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/file_length.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/maxasc.py +96 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/maxasc.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/order_boundary.py +109 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/order_boundary.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/setup.py +22 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_250m.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_250m_all.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_original.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_bad_num_lines.asc +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_bad_num_lines.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_header_differs.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_header_differs.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_wrong_num_columns.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_wrong_num_columns.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.expected.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.expected.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.expected.asc +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.expected.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test_maxasc.py +150 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test_order_boundary.py +397 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/__init__.py +4 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/loadASCII.py +1073 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/loadASCII.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/setup.py +21 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/tests/test_loadASCII.py +544 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/__init__.py +4 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/compile.py +9 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/compile.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine.py +221 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine_c_layer.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/setup.py +29 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/tests/test_generate_mesh.py +470 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/__init__.py +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/base_operator.py +125 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/base_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/boundary_flux_integral_operator.py +79 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/boundary_flux_integral_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/change_friction_operator.py +240 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/change_friction_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_quantities_operator.py +142 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_quantities_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_stage_operator.py +85 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_stage_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/compile_all.py +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/compile_all.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/elliptic_operator.py +495 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/elliptic_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/erosion_operators.py +859 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/erosion_operators.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator.py +563 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator.py +87 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/rate_operators.py +431 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/rate_operators.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation.py +290 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation_operator.py +148 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_friction_operators.py +159 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_friction_operators.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity.py +172 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity_operator.py +158 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage.py +131 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage_operator.py +135 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_w_uh_vh_operator.py +170 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_w_uh_vh_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/setup.py +33 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_base_operator.py +51 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_boundary_flux_integral_operator.py +98 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_erosion_operators.py +344 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_kinematic_viscosity_operator.py +1366 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_rate_operators.py +888 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_elevation_operator.py +1034 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_quantity.py +511 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_stage_operator.py +491 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_w_uh_vh_operators.py +211 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/__init__.py +31 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/config.py +14 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/config.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/distribute_mesh.py +1682 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/distribute_mesh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_advection.py +205 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_advection.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_api.py +467 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_api.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_box_operator.py +332 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_box_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_pipe_operator.py +283 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_pipe_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_generic_communications.py +207 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_generic_communications.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet.py +605 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_enquiry.py +228 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_enquiry.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_operator.py +281 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_internal_boundary_operator.py +230 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_internal_boundary_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_meshes.py +445 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_meshes.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_operator_factory.py +959 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_operator_factory.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_shallow_water.py +282 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_shallow_water.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_structure_operator.py +1241 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_structure_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_weir_orifice_trapezoid_operator.py +281 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_weir_orifice_trapezoid_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/print_stats.py +205 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/print_stats.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/pypar_ext.py +528 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/pypar_ext.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/sequential_distribute.py +309 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/sequential_distribute.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/setup.py +100 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/AppShell.py +345 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/AppShell.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/Pmw.py +9253 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/Pmw.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwBlt.py +671 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwBlt.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwColor.py +389 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwColor.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ProgressBar.py +80 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ProgressBar.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/__init__.py +4 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/compile.py +24 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/compile.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/cursornames.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/cursornames.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/exesetup.py +24 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/exesetup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/graphical_mesh_generator.py +1519 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/graphical_mesh_generator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/addVertex.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/addVertex.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/autoSegGiveAlpha.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/autoSegGiveAlpha.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/default.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/default.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/edit.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/edit.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/hole.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/hole.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/joinVer.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/joinVer.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/meshGen.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/meshGen.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/no_see.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/no_see.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/pointer.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/pointer.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/region.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/region.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/see.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/see.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/segment.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/segment.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/sep.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/sep.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/vertex.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/vertex.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom0.5.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom0.5.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom2.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom2.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoomToMesh.gif +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoomToMesh.lic +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh.py +2416 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_interface.py +373 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_interface.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_quadtree.py +130 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_quadtree.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/run_setup.py +43 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/run_setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/setup.py +22 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_mesh.py +2129 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_mesh_interface.py +988 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_meshquad.py +189 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/timing.py +150 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/timing.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/toolbarbutton.py +80 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/toolbarbutton.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ungen_example.py +69 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ungen_example.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/view_tsh.py +47 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/view_tsh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/visualmesh.py +302 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/visualmesh.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/__init__.py +6 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/metis_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/setup.py +54 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/tests/test_metis.py +141 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/setup.py +49 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/__init__.py +12 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/boundaries.py +1028 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/boundaries.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/checkpoint.py +118 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/checkpoint.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/forcing.py +1339 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/forcing.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/most2nc.py +101 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/most2nc.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/setup.py +37 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_domain.py +3114 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_domain.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swDE1_domain_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain.py +576 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/sww_interrogate.py +652 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/sww_interrogate.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/__init__.py +8 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/polygon_values_example.csv +46 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/polygon_values_example.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_large.csv +7855 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_large.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_small.csv +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_small.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_DE1_domain.py +111 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_data_manager.py +879 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_forcing.py +2271 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_loadsave.py +212 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_local_extrapolation_and_flux_updating.py +114 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_most2nc.py +52 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_shallow_water_domain.py +8670 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_swb2_domain.py +106 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_sww_interrogate.py +888 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_system.py +193 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-e-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-n-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-z-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.lic +55 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-e-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-n-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-z-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.lic +55 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-e-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-n-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-z-mux2 +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.lic +55 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/thinned_bound_order_test.lic +18 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/thinned_bound_order_test.txt +6 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_0.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_0.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_1.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_1.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_2.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_2.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_3.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_3.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_4.csv +252 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_4.lic +25 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tsh2sww.py +65 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tsh2sww.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/__init__.py +5 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator.py +380 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator_Amended3.py +245 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator_Amended3.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_pipe_operator.py +305 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_pipe_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet.py +289 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_enquiry.py +146 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_enquiry.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_operator.py +229 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_functions.py +431 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_functions.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_operator.py +169 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/riverwall.py +738 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/riverwall.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/setup.py +24 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/structure_operator.py +757 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/structure_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/hecras_bridge_table.csv +105 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test1.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test1.tms +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test2.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test2.tms +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/test_hydrograph.tms +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_boyd_box_operator.py +2623 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_boyd_pipe_operator.py +482 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_inlet_operator.py +311 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_internal_boundary_functions.py +96 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_riverwall_structure.py +619 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_weir_orifice_trapezoid_operator.py +650 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/weir_orifice_trapezoid_operator.py +387 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/weir_orifice_trapezoid_operator.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/test_all.py +282 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/test_all.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/__init__.py +13 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf.py +147 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf_v2.py +559 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf_v2.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/okada_tsunami.py +347 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/okada_tsunami.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/setup.py +27 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/smf.py +467 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/smf.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_MS.lic +23 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_MS.txt +36 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SP.lic +23 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SP.txt +36 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SS.lic +23 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SS.txt +36 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/okada_tsunami_octave_95.txt +101 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_eq.py +67 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_okada_tsunami.py +439 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_smf.py +143 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_tsunami_okada.py +303 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tsunami_okada.py +1885 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tsunami_okada.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/__init__.py +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/argparsing.py +76 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/argparsing.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_solve.py +327 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_solve.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/compile.py +497 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/compile.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/csv_tools.py +121 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/csv_tools.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit.py +404 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit_wrapper.py +52 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit_wrapper.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/file_utils.py +308 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/file_utils.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/function_utils.py +117 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/function_utils.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/interp.py +318 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/interp.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log.py +414 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log_analyser.py +77 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log_analyser.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/mem_time_equation.py +106 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/mem_time_equation.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/model_tools.py +457 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/model_tools.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/norms.py +16 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/norms.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/numerical_tools.py +397 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/numerical_tools.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parallel_abstraction.py +67 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parallel_abstraction.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parse.py +26 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parse.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/plot_utils.py +1237 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/plot_utils.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quad_tree_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quantity_setting_functions.py +612 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quantity_setting_functions.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quickPlots.py +164 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quickPlots.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/run_anuga_script.py +70 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/run_anuga_script.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/setup.py +39 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse.py +398 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse_matrix_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/spatialInputUtil.py +1394 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/spatialInputUtil.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sww_merge.py +820 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sww_merge.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/system_tools.py +646 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/system_tools.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/terminal_width.py +60 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/terminal_width.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/complex_polygon.csv +4 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/complex_polygon.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/crc_test_file.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/crc_test_file.png +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/mainland_only.csv +669 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/mainland_only.lic +33 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/non_complex_polygon.csv +5 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/non_complex_polygon.lic +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_cg_solve.py +569 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_csv_tools.py +435 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_data_audit.py +393 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_file_utils.py +157 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_function_utils.py +65 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_log_analyser.py +89 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_mem_time_equation.py +47 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_numerical_tools.py +616 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_plot_utils.py +455 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_quantity_setting_functions.py +369 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_sparse.py +215 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_spatialInputUtil.py +418 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_system_tools.py +483 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_xml_tools.py +316 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/util_ext.pyd +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/where_close.py +219 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/where_close.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/xml_tools.py +326 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/xml_tools.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/__init__.py +15 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/__init__.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/fabricate.py +1429 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/fabricate.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/parameters.py +24 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/parameters.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/produce_report.py +38 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/produce_report.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/run_validation.py +51 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/run_validation.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/save_parameters_tex.py +17 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/save_parameters_tex.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/setup.py +22 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/setup.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/typeset_report.py +55 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/typeset_report.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/version.py +11 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/version.pyc +0 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/PKG-INFO +117 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/SOURCES.txt +1329 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/dependency_links.txt +1 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/not-zip-safe +1 -0
- Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,1144 @@
|
|
|
1
|
+
"""Least squares interpolation.
|
|
2
|
+
|
|
3
|
+
These functions and classes calculate a value at a particular point on
|
|
4
|
+
the given mesh. It interpolates the values stored at the vertices of the
|
|
5
|
+
mesh.
|
|
6
|
+
|
|
7
|
+
For example, if you want to get the height of a terrain mesh at particular
|
|
8
|
+
point, you pass the point to an Interpolate class. The point will intersect
|
|
9
|
+
one of the triangles on the mesh, and the interpolated height will be an
|
|
10
|
+
intermediate value between the three vertices of that triangle.
|
|
11
|
+
This value is returned by the class.
|
|
12
|
+
|
|
13
|
+
Ole Nielsen, Stephen Roberts, Duncan Gray, Christopher Zoppou
|
|
14
|
+
Geoscience Australia, 2004.
|
|
15
|
+
|
|
16
|
+
DESIGN ISSUES
|
|
17
|
+
* what variables should be global?
|
|
18
|
+
- if there are no global vars functions can be moved around alot easier
|
|
19
|
+
|
|
20
|
+
* The public interface to Interpolate
|
|
21
|
+
__init__
|
|
22
|
+
interpolate
|
|
23
|
+
interpolate_block
|
|
24
|
+
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
import time
|
|
28
|
+
import os
|
|
29
|
+
import sys
|
|
30
|
+
from warnings import warn
|
|
31
|
+
from math import sqrt
|
|
32
|
+
from csv import writer, DictWriter
|
|
33
|
+
|
|
34
|
+
from anuga.caching.caching import cache
|
|
35
|
+
from anuga.abstract_2d_finite_volumes.neighbour_mesh import Mesh
|
|
36
|
+
from anuga.utilities.sparse import Sparse, Sparse_CSR
|
|
37
|
+
from anuga.utilities.cg_solve import conjugate_gradient, VectorShapeError
|
|
38
|
+
from anuga.coordinate_transforms.geo_reference import Geo_reference
|
|
39
|
+
from anuga.utilities.numerical_tools import ensure_numeric, NAN
|
|
40
|
+
from anuga.geospatial_data.geospatial_data import Geospatial_data
|
|
41
|
+
from anuga.geospatial_data.geospatial_data import ensure_absolute
|
|
42
|
+
from anuga.pmesh.mesh_quadtree import MeshQuadtree
|
|
43
|
+
from anuga.fit_interpolate.general_fit_interpolate import FitInterpolate
|
|
44
|
+
from anuga.abstract_2d_finite_volumes.file_function import file_function
|
|
45
|
+
from anuga.config import netcdf_mode_r, netcdf_mode_w, netcdf_mode_a
|
|
46
|
+
from anuga.geometry.polygon import interpolate_polyline, in_and_outside_polygon
|
|
47
|
+
import anuga.utilities.log as log
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
import numpy as num
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
# Interpolation specific exceptions
|
|
54
|
+
|
|
55
|
+
class Modeltime_too_late(Exception): pass
|
|
56
|
+
class Modeltime_too_early(Exception): pass
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def interpolate(vertex_coordinates,
|
|
60
|
+
triangles,
|
|
61
|
+
vertex_values,
|
|
62
|
+
interpolation_points,
|
|
63
|
+
mesh_origin=None,
|
|
64
|
+
start_blocking_len=500000,
|
|
65
|
+
use_cache=False,
|
|
66
|
+
verbose=False,
|
|
67
|
+
output_centroids=False):
|
|
68
|
+
"""Interpolate vertex_values to interpolation points.
|
|
69
|
+
|
|
70
|
+
Inputs (mandatory):
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
vertex_coordinates: List of coordinate pairs [xi, eta] of
|
|
74
|
+
points constituting a mesh
|
|
75
|
+
(or an m x 2 numeric array or
|
|
76
|
+
a geospatial object)
|
|
77
|
+
Points may appear multiple times
|
|
78
|
+
(e.g. if vertices have discontinuities)
|
|
79
|
+
|
|
80
|
+
triangles: List of 3-tuples (or a numeric array) of
|
|
81
|
+
integers representing indices of all vertices
|
|
82
|
+
in the mesh.
|
|
83
|
+
|
|
84
|
+
vertex_values: Vector or array of data at the mesh vertices.
|
|
85
|
+
If array, interpolation will be done for each column as
|
|
86
|
+
per underlying matrix-matrix multiplication
|
|
87
|
+
|
|
88
|
+
interpolation_points: Interpolate mesh data to these positions.
|
|
89
|
+
List of coordinate pairs [x, y] of
|
|
90
|
+
data points or an nx2 numeric array or a
|
|
91
|
+
Geospatial_data object
|
|
92
|
+
|
|
93
|
+
Inputs (optional)
|
|
94
|
+
|
|
95
|
+
mesh_origin: A geo_reference object or 3-tuples consisting of
|
|
96
|
+
UTM zone, easting and northing.
|
|
97
|
+
If specified vertex coordinates are assumed to be
|
|
98
|
+
relative to their respective origins.
|
|
99
|
+
|
|
100
|
+
Note: Don't supply a vertex coords as a geospatial
|
|
101
|
+
object and a mesh origin, since geospatial has its
|
|
102
|
+
own mesh origin.
|
|
103
|
+
|
|
104
|
+
start_blocking_len: If the # of points is more or greater than this,
|
|
105
|
+
start blocking
|
|
106
|
+
|
|
107
|
+
use_cache: True or False
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
Output:
|
|
111
|
+
|
|
112
|
+
Interpolated values at specified point_coordinates
|
|
113
|
+
|
|
114
|
+
Note: This function is a simple shortcut for case where
|
|
115
|
+
interpolation matrix is unnecessary
|
|
116
|
+
Note: This function does not take blocking into account,
|
|
117
|
+
but allows caching.
|
|
118
|
+
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
# FIXME(Ole): Probably obsolete since I is precomputed and
|
|
122
|
+
# interpolate_block caches
|
|
123
|
+
|
|
124
|
+
from anuga.caching import cache
|
|
125
|
+
|
|
126
|
+
# Create interpolation object with matrix
|
|
127
|
+
args = (ensure_numeric(vertex_coordinates, num.float),
|
|
128
|
+
ensure_numeric(triangles))
|
|
129
|
+
kwargs = {'mesh_origin': mesh_origin,
|
|
130
|
+
'verbose': verbose}
|
|
131
|
+
|
|
132
|
+
if use_cache is True:
|
|
133
|
+
I = cache(Interpolate, args, kwargs, verbose=verbose)
|
|
134
|
+
else:
|
|
135
|
+
I = apply(Interpolate, args, kwargs)
|
|
136
|
+
|
|
137
|
+
# Call interpolate method with interpolation points
|
|
138
|
+
result = I.interpolate_block(vertex_values, interpolation_points,
|
|
139
|
+
use_cache=use_cache,
|
|
140
|
+
verbose=verbose,
|
|
141
|
+
output_centroids=output_centroids)
|
|
142
|
+
|
|
143
|
+
return result
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
class Interpolate (FitInterpolate):
|
|
147
|
+
|
|
148
|
+
def __init__(self,
|
|
149
|
+
vertex_coordinates,
|
|
150
|
+
triangles,
|
|
151
|
+
mesh_origin=None,
|
|
152
|
+
verbose=False):
|
|
153
|
+
|
|
154
|
+
""" Build interpolation matrix mapping from
|
|
155
|
+
function values at vertices to function values at data points
|
|
156
|
+
|
|
157
|
+
Inputs:
|
|
158
|
+
vertex_coordinates: List of coordinate pairs [xi, eta] of
|
|
159
|
+
points constituting a mesh (or an m x 2 numeric array or
|
|
160
|
+
a geospatial object)
|
|
161
|
+
Points may appear multiple times
|
|
162
|
+
(e.g. if vertices have discontinuities)
|
|
163
|
+
|
|
164
|
+
triangles: List of 3-tuples (or a numeric array) of
|
|
165
|
+
integers representing indices of all vertices in the mesh.
|
|
166
|
+
|
|
167
|
+
mesh_origin: A geo_reference object or 3-tuples consisting of
|
|
168
|
+
UTM zone, easting and northing.
|
|
169
|
+
If specified vertex coordinates are assumed to be
|
|
170
|
+
relative to their respective origins.
|
|
171
|
+
|
|
172
|
+
max_vertices_per_cell: Number of vertices in a quad tree cell
|
|
173
|
+
at which the cell is split into 4.
|
|
174
|
+
|
|
175
|
+
Note: Don't supply a vertex coords as a geospatial object and
|
|
176
|
+
a mesh origin, since geospatial has its own mesh origin.
|
|
177
|
+
"""
|
|
178
|
+
|
|
179
|
+
# FIXME (Ole): Need an input check
|
|
180
|
+
|
|
181
|
+
FitInterpolate.__init__(self,
|
|
182
|
+
vertex_coordinates=vertex_coordinates,
|
|
183
|
+
triangles=triangles,
|
|
184
|
+
mesh_origin=mesh_origin,
|
|
185
|
+
verbose=verbose)
|
|
186
|
+
|
|
187
|
+
# Initialise variables
|
|
188
|
+
self._A_can_be_reused = False # FIXME (Ole): Probably obsolete
|
|
189
|
+
self._point_coordinates = None # FIXME (Ole): Probably obsolete
|
|
190
|
+
self.interpolation_matrices = {} # Store precomputed matrices
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
# FIXME: What is a good start_blocking_len value?
|
|
194
|
+
def interpolate(self,
|
|
195
|
+
f,
|
|
196
|
+
point_coordinates=None,
|
|
197
|
+
start_blocking_len=500000,
|
|
198
|
+
NODATA_value = NAN,
|
|
199
|
+
verbose=False,
|
|
200
|
+
output_centroids=False):
|
|
201
|
+
"""Interpolate mesh data f to determine values, z, at points.
|
|
202
|
+
|
|
203
|
+
f is the data on the mesh vertices.
|
|
204
|
+
|
|
205
|
+
The mesh values representing a smooth surface are
|
|
206
|
+
assumed to be specified in f.
|
|
207
|
+
|
|
208
|
+
Inputs:
|
|
209
|
+
f: Vector or array of data at the mesh vertices.
|
|
210
|
+
If f is an array, interpolation will be done for each column as
|
|
211
|
+
per underlying matrix-matrix multiplication
|
|
212
|
+
|
|
213
|
+
point_coordinates: Interpolate mesh data to these positions.
|
|
214
|
+
List of coordinate pairs [x, y] of
|
|
215
|
+
data points or an nx2 numeric array or a Geospatial_data object
|
|
216
|
+
|
|
217
|
+
If point_coordinates is absent, the points inputted last time
|
|
218
|
+
this method was called are used, if possible.
|
|
219
|
+
|
|
220
|
+
start_blocking_len: If the # of points is more or greater than this,
|
|
221
|
+
start blocking
|
|
222
|
+
|
|
223
|
+
Output:
|
|
224
|
+
Interpolated values at inputted points (z).
|
|
225
|
+
"""
|
|
226
|
+
|
|
227
|
+
# FIXME (Ole): Why is the interpolation matrix rebuilt everytime the
|
|
228
|
+
# method is called even if interpolation points are unchanged.
|
|
229
|
+
# This really should use some kind of caching in cases where
|
|
230
|
+
# interpolation points are reused.
|
|
231
|
+
#
|
|
232
|
+
# This has now been addressed through an attempt in interpolate_block
|
|
233
|
+
|
|
234
|
+
if verbose: log.critical('Build intepolation object')
|
|
235
|
+
if isinstance(point_coordinates, Geospatial_data):
|
|
236
|
+
point_coordinates = point_coordinates.get_data_points(absolute=True)
|
|
237
|
+
|
|
238
|
+
# Can I interpolate, based on previous point_coordinates?
|
|
239
|
+
if point_coordinates is None:
|
|
240
|
+
if self._A_can_be_reused is True \
|
|
241
|
+
and len(self._point_coordinates) < start_blocking_len:
|
|
242
|
+
z = self._get_point_data_z(f, NODATA_value=NODATA_value, verbose=verbose)
|
|
243
|
+
elif self._point_coordinates is not None:
|
|
244
|
+
# if verbose, give warning
|
|
245
|
+
if verbose:
|
|
246
|
+
log.critical('WARNING: Recalculating A matrix, '
|
|
247
|
+
'due to blocking.')
|
|
248
|
+
point_coordinates = self._point_coordinates
|
|
249
|
+
else:
|
|
250
|
+
# There are no good point_coordinates. import sys; sys.exit()
|
|
251
|
+
msg = 'ERROR (interpolate.py): No point_coordinates inputted'
|
|
252
|
+
raise Exception(msg)
|
|
253
|
+
|
|
254
|
+
if point_coordinates is not None:
|
|
255
|
+
self._point_coordinates = point_coordinates
|
|
256
|
+
if len(point_coordinates) < start_blocking_len \
|
|
257
|
+
or start_blocking_len == 0:
|
|
258
|
+
self._A_can_be_reused = True
|
|
259
|
+
z = self.interpolate_block(f, point_coordinates, NODATA_value = NODATA_value,
|
|
260
|
+
verbose=verbose, output_centroids=output_centroids)
|
|
261
|
+
else:
|
|
262
|
+
# Handle blocking
|
|
263
|
+
self._A_can_be_reused = False
|
|
264
|
+
start = 0
|
|
265
|
+
# creating a dummy array to concatenate to.
|
|
266
|
+
|
|
267
|
+
f = ensure_numeric(f, num.float)
|
|
268
|
+
if len(f.shape) > 1:
|
|
269
|
+
z = num.zeros((0, f.shape[1]), num.int) #array default#
|
|
270
|
+
else:
|
|
271
|
+
z = num.zeros((0,), num.int) #array default#
|
|
272
|
+
|
|
273
|
+
for end in range(start_blocking_len,
|
|
274
|
+
len(point_coordinates),
|
|
275
|
+
start_blocking_len):
|
|
276
|
+
t = self.interpolate_block(f, point_coordinates[start:end], NODATA_value=NODATA_value,
|
|
277
|
+
verbose=verbose, output_centroids=output_centroids)
|
|
278
|
+
z = num.concatenate((z, t), axis=0) #??default#
|
|
279
|
+
start = end
|
|
280
|
+
|
|
281
|
+
end = len(point_coordinates)
|
|
282
|
+
t = self.interpolate_block(f, point_coordinates[start:end], NODATA_value=NODATA_value,
|
|
283
|
+
verbose=verbose, output_centroids=output_centroids)
|
|
284
|
+
z = num.concatenate((z, t), axis=0) #??default#
|
|
285
|
+
return z
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
def interpolate_block(self, f, point_coordinates, NODATA_value=NAN,
|
|
289
|
+
use_cache=False, verbose=False, output_centroids=False):
|
|
290
|
+
"""
|
|
291
|
+
Call this if you want to control the blocking or make sure blocking
|
|
292
|
+
doesn't occur.
|
|
293
|
+
|
|
294
|
+
Return the point data, z.
|
|
295
|
+
|
|
296
|
+
See interpolate for doc info.
|
|
297
|
+
"""
|
|
298
|
+
|
|
299
|
+
# FIXME (Ole): I reckon we should change the interface so that
|
|
300
|
+
# the user can specify the interpolation matrix instead of the
|
|
301
|
+
# interpolation points to save time.
|
|
302
|
+
|
|
303
|
+
if isinstance(point_coordinates, Geospatial_data):
|
|
304
|
+
point_coordinates = point_coordinates.get_data_points(absolute=True)
|
|
305
|
+
|
|
306
|
+
# Convert lists to numeric arrays if necessary
|
|
307
|
+
point_coordinates = ensure_numeric(point_coordinates, num.float)
|
|
308
|
+
f = ensure_numeric(f, num.float)
|
|
309
|
+
|
|
310
|
+
from anuga.caching import myhash
|
|
311
|
+
import sys
|
|
312
|
+
|
|
313
|
+
if use_cache is True:
|
|
314
|
+
if sys.platform != 'win32':
|
|
315
|
+
# FIXME (Ole): (Why doesn't this work on windoze?)
|
|
316
|
+
# Still absolutely fails on Win 24 Oct 2008
|
|
317
|
+
|
|
318
|
+
X = cache(self._build_interpolation_matrix_A,
|
|
319
|
+
args=(point_coordinates, output_centroids),
|
|
320
|
+
kwargs={'verbose': verbose},
|
|
321
|
+
verbose=verbose)
|
|
322
|
+
else:
|
|
323
|
+
# FIXME
|
|
324
|
+
# Hash point_coordinates to memory location, reuse if possible
|
|
325
|
+
# This will work on Linux as well if we want to use it there.
|
|
326
|
+
key = myhash(point_coordinates)
|
|
327
|
+
|
|
328
|
+
reuse_A = False
|
|
329
|
+
|
|
330
|
+
if self.interpolation_matrices.has_key(key):
|
|
331
|
+
X, stored_points = self.interpolation_matrices[key]
|
|
332
|
+
if num.alltrue(stored_points == point_coordinates):
|
|
333
|
+
reuse_A = True # Reuse interpolation matrix
|
|
334
|
+
|
|
335
|
+
if reuse_A is False:
|
|
336
|
+
X = self._build_interpolation_matrix_A(point_coordinates,
|
|
337
|
+
output_centroids,
|
|
338
|
+
verbose=verbose)
|
|
339
|
+
self.interpolation_matrices[key] = (X, point_coordinates)
|
|
340
|
+
else:
|
|
341
|
+
X = self._build_interpolation_matrix_A(point_coordinates, output_centroids,
|
|
342
|
+
verbose=verbose)
|
|
343
|
+
|
|
344
|
+
# Unpack result
|
|
345
|
+
self._A, self.inside_poly_indices, self.outside_poly_indices, self.centroids = X
|
|
346
|
+
# Check that input dimensions are compatible
|
|
347
|
+
msg = 'Two columns must be specified in point coordinates. ' \
|
|
348
|
+
'I got shape=%s' % (str(point_coordinates.shape))
|
|
349
|
+
assert point_coordinates.shape[1] == 2, msg
|
|
350
|
+
|
|
351
|
+
msg = 'The number of rows in matrix A must be the same as the '
|
|
352
|
+
msg += 'number of points supplied.'
|
|
353
|
+
msg += ' I got %d points and %d matrix rows.' \
|
|
354
|
+
% (point_coordinates.shape[0], self._A.shape[0])
|
|
355
|
+
assert point_coordinates.shape[0] == self._A.shape[0], msg
|
|
356
|
+
|
|
357
|
+
msg = 'The number of columns in matrix A must be the same as the '
|
|
358
|
+
msg += 'number of mesh vertices.'
|
|
359
|
+
msg += ' I got %d vertices and %d matrix columns.' \
|
|
360
|
+
% (f.shape[0], self._A.shape[1])
|
|
361
|
+
assert self._A.shape[1] == f.shape[0], msg
|
|
362
|
+
|
|
363
|
+
# Compute Matrix vector product and return
|
|
364
|
+
return self._get_point_data_z(f, NODATA_value=NODATA_value)
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
def get_outside_poly_indices(self):
|
|
368
|
+
"""
|
|
369
|
+
Return index of those data points outside (and in holes)
|
|
370
|
+
the mesh
|
|
371
|
+
|
|
372
|
+
Precondition: interpolation or interpolation_block has been called
|
|
373
|
+
"""
|
|
374
|
+
return self.outside_poly_indices
|
|
375
|
+
|
|
376
|
+
|
|
377
|
+
def _get_point_data_z(self, f, NODATA_value=NAN, verbose=False):
|
|
378
|
+
"""
|
|
379
|
+
Return the point data, z.
|
|
380
|
+
|
|
381
|
+
Precondition: The _A matrix has been created
|
|
382
|
+
"""
|
|
383
|
+
|
|
384
|
+
z = self._A * f
|
|
385
|
+
|
|
386
|
+
# Taking into account points outside the mesh.
|
|
387
|
+
for i in self.outside_poly_indices:
|
|
388
|
+
z[i] = NODATA_value
|
|
389
|
+
return z
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
def _build_interpolation_matrix_A(self,
|
|
393
|
+
point_coordinates,
|
|
394
|
+
output_centroids=False,
|
|
395
|
+
verbose=False):
|
|
396
|
+
"""Build n x m interpolation matrix, where
|
|
397
|
+
n is the number of data points and
|
|
398
|
+
m is the number of basis functions phi_k (one per vertex)
|
|
399
|
+
|
|
400
|
+
This algorithm uses a quad tree data structure for fast binning
|
|
401
|
+
of data points
|
|
402
|
+
origin is a 3-tuple consisting of UTM zone, easting and northing.
|
|
403
|
+
If specified coordinates are assumed to be relative to this origin.
|
|
404
|
+
|
|
405
|
+
This one will override any data_origin that may be specified in
|
|
406
|
+
instance interpolation
|
|
407
|
+
|
|
408
|
+
Preconditions:
|
|
409
|
+
Point_coordindates and mesh vertices have the same origin.
|
|
410
|
+
"""
|
|
411
|
+
|
|
412
|
+
if verbose: log.critical('Building interpolation matrix')
|
|
413
|
+
|
|
414
|
+
# Convert point_coordinates to numeric arrays, in case it was a list.
|
|
415
|
+
point_coordinates = ensure_numeric(point_coordinates, num.float)
|
|
416
|
+
|
|
417
|
+
if verbose: log.critical('Getting indices inside mesh boundary')
|
|
418
|
+
|
|
419
|
+
# Quick test against boundary, but will not deal with holes in the mesh,
|
|
420
|
+
# that is done below
|
|
421
|
+
inside_boundary_indices, outside_poly_indices = \
|
|
422
|
+
in_and_outside_polygon(point_coordinates,
|
|
423
|
+
self.mesh.get_boundary_polygon(),
|
|
424
|
+
closed=True, verbose=verbose)
|
|
425
|
+
|
|
426
|
+
# Build n x m interpolation matrix
|
|
427
|
+
if verbose and len(outside_poly_indices) > 0:
|
|
428
|
+
log.critical('WARNING: Points outside mesh boundary.')
|
|
429
|
+
|
|
430
|
+
# Since you can block, throw a warning, not an error.
|
|
431
|
+
if verbose and 0 == len(inside_boundary_indices):
|
|
432
|
+
log.critical('WARNING: No points within the mesh!')
|
|
433
|
+
|
|
434
|
+
m = self.mesh.number_of_nodes # Nbr of basis functions (1/vertex)
|
|
435
|
+
n = point_coordinates.shape[0] # Nbr of data points
|
|
436
|
+
|
|
437
|
+
if verbose: log.critical('Number of datapoints: %d' % n)
|
|
438
|
+
if verbose: log.critical('Number of basis functions: %d' % m)
|
|
439
|
+
|
|
440
|
+
A = Sparse(n,m)
|
|
441
|
+
|
|
442
|
+
n = len(inside_boundary_indices)
|
|
443
|
+
|
|
444
|
+
centroids = []
|
|
445
|
+
inside_poly_indices = []
|
|
446
|
+
|
|
447
|
+
# Compute matrix elements for points inside the mesh
|
|
448
|
+
if verbose: log.critical('Building interpolation matrix from %d points'
|
|
449
|
+
% n)
|
|
450
|
+
|
|
451
|
+
for d, i in enumerate(inside_boundary_indices):
|
|
452
|
+
# For each data_coordinate point
|
|
453
|
+
if verbose and d%((n+10)/10)==0: log.critical('Doing %d of %d'
|
|
454
|
+
%(d, n))
|
|
455
|
+
|
|
456
|
+
x = point_coordinates[i]
|
|
457
|
+
element_found, sigma0, sigma1, sigma2, k = self.root.search_fast(x)
|
|
458
|
+
# Update interpolation matrix A if necessary
|
|
459
|
+
if element_found is True:
|
|
460
|
+
|
|
461
|
+
#if verbose:
|
|
462
|
+
# print 'Point is within mesh:', d, i
|
|
463
|
+
|
|
464
|
+
inside_poly_indices.append(i)
|
|
465
|
+
|
|
466
|
+
# Assign values to matrix A
|
|
467
|
+
j0 = self.mesh.triangles[k,0] # Global vertex id for sigma0
|
|
468
|
+
j1 = self.mesh.triangles[k,1] # Global vertex id for sigma1
|
|
469
|
+
j2 = self.mesh.triangles[k,2] # Global vertex id for sigma2
|
|
470
|
+
js = [j0, j1, j2]
|
|
471
|
+
|
|
472
|
+
if output_centroids is False:
|
|
473
|
+
# Weight each vertex according to its distance from x
|
|
474
|
+
sigmas = {j0:sigma0, j1:sigma1, j2:sigma2}
|
|
475
|
+
for j in js:
|
|
476
|
+
A[i, j] = sigmas[j]
|
|
477
|
+
else:
|
|
478
|
+
# If centroids are needed, weight all 3 vertices equally
|
|
479
|
+
for j in js:
|
|
480
|
+
A[i, j] = 1.0/3.0
|
|
481
|
+
centroids.append(self.mesh.centroid_coordinates[k])
|
|
482
|
+
else:
|
|
483
|
+
if verbose:
|
|
484
|
+
log.critical('Mesh has a hole - moving this point to outside list')
|
|
485
|
+
|
|
486
|
+
# This is a numpy arrays, so we need to do a slow transfer
|
|
487
|
+
outside_poly_indices = num.append(outside_poly_indices, [i], axis=0)
|
|
488
|
+
|
|
489
|
+
return A, inside_poly_indices, outside_poly_indices, centroids
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
def benchmark_interpolate(vertices,
|
|
497
|
+
vertex_attributes,
|
|
498
|
+
triangles, points,
|
|
499
|
+
max_points_per_cell=None,
|
|
500
|
+
start_blocking_len=500000,
|
|
501
|
+
mesh_origin=None):
|
|
502
|
+
"""
|
|
503
|
+
points: Interpolate mesh data to these positions.
|
|
504
|
+
List of coordinate pairs [x, y] of
|
|
505
|
+
data points or an nx2 numeric array or a Geospatial_data object
|
|
506
|
+
|
|
507
|
+
No test for this yet.
|
|
508
|
+
Note, this has no time the input data has no time dimension. Which is
|
|
509
|
+
different from most of the data we interpolate, eg sww info.
|
|
510
|
+
|
|
511
|
+
Output:
|
|
512
|
+
Interpolated values at inputted points.
|
|
513
|
+
"""
|
|
514
|
+
|
|
515
|
+
interp = Interpolate(vertices,
|
|
516
|
+
triangles,
|
|
517
|
+
max_vertices_per_cell=max_points_per_cell,
|
|
518
|
+
mesh_origin=mesh_origin)
|
|
519
|
+
|
|
520
|
+
calc = interp.interpolate(vertex_attributes,
|
|
521
|
+
points,
|
|
522
|
+
start_blocking_len=start_blocking_len)
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
def interpolate_sww2csv(sww_file,
|
|
526
|
+
points,
|
|
527
|
+
depth_file,
|
|
528
|
+
velocity_x_file,
|
|
529
|
+
velocity_y_file,
|
|
530
|
+
stage_file=None,
|
|
531
|
+
froude_file=None,
|
|
532
|
+
time_thinning=1,
|
|
533
|
+
g = 9.80665,
|
|
534
|
+
verbose=True,
|
|
535
|
+
use_cache = True):
|
|
536
|
+
"""
|
|
537
|
+
Interpolate the quantities at a given set of locations, given
|
|
538
|
+
an sww file.
|
|
539
|
+
The results are written to csv files.
|
|
540
|
+
|
|
541
|
+
sww_file is the input sww file.
|
|
542
|
+
points is a list of the 'gauges' x,y location.
|
|
543
|
+
depth_file is the name of the output depth file
|
|
544
|
+
velocity_x_file is the name of the output x velocity file.
|
|
545
|
+
velocity_y_file is the name of the output y velocity file.
|
|
546
|
+
stage_file is the name of the output stage file.
|
|
547
|
+
|
|
548
|
+
In the csv files columns represents the gauges and each row is a
|
|
549
|
+
time slice.
|
|
550
|
+
|
|
551
|
+
Time_thinning_number controls how many timesteps to use. Only
|
|
552
|
+
timesteps with index%time_thinning_number == 0 will used, or
|
|
553
|
+
in other words a value of 3, say, will cause the algorithm to
|
|
554
|
+
use every third time step.
|
|
555
|
+
|
|
556
|
+
In the future let points be a points file.
|
|
557
|
+
And let the user choose the quantities.
|
|
558
|
+
|
|
559
|
+
This is currently quite specific.
|
|
560
|
+
If it is need to be more general, change things.
|
|
561
|
+
"""
|
|
562
|
+
|
|
563
|
+
quantities = ['stage', 'elevation', 'xmomentum', 'ymomentum']
|
|
564
|
+
points = ensure_absolute(points)
|
|
565
|
+
point_count = len(points)
|
|
566
|
+
callable_sww = file_function(sww_file,
|
|
567
|
+
quantities=quantities,
|
|
568
|
+
interpolation_points=points,
|
|
569
|
+
verbose=verbose,
|
|
570
|
+
time_thinning=time_thinning,
|
|
571
|
+
use_cache=use_cache)
|
|
572
|
+
|
|
573
|
+
depth_writer = writer(file(depth_file, "wb"))
|
|
574
|
+
velocity_x_writer = writer(file(velocity_x_file, "wb"))
|
|
575
|
+
velocity_y_writer = writer(file(velocity_y_file, "wb"))
|
|
576
|
+
if stage_file is not None:
|
|
577
|
+
stage_writer = writer(file(stage_file, "wb"))
|
|
578
|
+
if froude_file is not None:
|
|
579
|
+
froude_writer = writer(file(froude_file, "wb"))
|
|
580
|
+
|
|
581
|
+
# Write heading
|
|
582
|
+
heading = [str(x[0])+ ':' + str(x[1]) for x in points]
|
|
583
|
+
heading.insert(0, "time")
|
|
584
|
+
depth_writer.writerow(heading)
|
|
585
|
+
velocity_x_writer.writerow(heading)
|
|
586
|
+
velocity_y_writer.writerow(heading)
|
|
587
|
+
if stage_file is not None:
|
|
588
|
+
stage_writer.writerow(heading)
|
|
589
|
+
if froude_file is not None:
|
|
590
|
+
froude_writer.writerow(heading)
|
|
591
|
+
|
|
592
|
+
for time in callable_sww.get_time():
|
|
593
|
+
depths = [time]
|
|
594
|
+
velocity_xs = [time]
|
|
595
|
+
velocity_ys = [time]
|
|
596
|
+
if stage_file is not None:
|
|
597
|
+
stages = [time]
|
|
598
|
+
if froude_file is not None:
|
|
599
|
+
froudes = [time]
|
|
600
|
+
for point_i, point in enumerate(points):
|
|
601
|
+
quantities = callable_sww(time,point_i)
|
|
602
|
+
|
|
603
|
+
w = quantities[0]
|
|
604
|
+
z = quantities[1]
|
|
605
|
+
momentum_x = quantities[2]
|
|
606
|
+
momentum_y = quantities[3]
|
|
607
|
+
depth = w - z
|
|
608
|
+
|
|
609
|
+
if w == NAN or z == NAN or momentum_x == NAN:
|
|
610
|
+
velocity_x = NAN
|
|
611
|
+
else:
|
|
612
|
+
if depth > 1.e-30: # use epsilon
|
|
613
|
+
velocity_x = momentum_x / depth #Absolute velocity
|
|
614
|
+
else:
|
|
615
|
+
velocity_x = 0
|
|
616
|
+
|
|
617
|
+
if w == NAN or z == NAN or momentum_y == NAN:
|
|
618
|
+
velocity_y = NAN
|
|
619
|
+
else:
|
|
620
|
+
if depth > 1.e-30: # use epsilon
|
|
621
|
+
velocity_y = momentum_y / depth #Absolute velocity
|
|
622
|
+
else:
|
|
623
|
+
velocity_y = 0
|
|
624
|
+
|
|
625
|
+
if depth < 1.e-30: # use epsilon
|
|
626
|
+
froude = NAN
|
|
627
|
+
else:
|
|
628
|
+
|
|
629
|
+
froude = sqrt(velocity_x*velocity_x + velocity_y*velocity_y)/ \
|
|
630
|
+
sqrt(depth * g) # gravity m/s/s
|
|
631
|
+
|
|
632
|
+
depths.append(depth)
|
|
633
|
+
velocity_xs.append(velocity_x)
|
|
634
|
+
velocity_ys.append(velocity_y)
|
|
635
|
+
|
|
636
|
+
if stage_file is not None:
|
|
637
|
+
stages.append(w)
|
|
638
|
+
if froude_file is not None:
|
|
639
|
+
froudes.append(froude)
|
|
640
|
+
|
|
641
|
+
depth_writer.writerow(depths)
|
|
642
|
+
velocity_x_writer.writerow(velocity_xs)
|
|
643
|
+
velocity_y_writer.writerow(velocity_ys)
|
|
644
|
+
|
|
645
|
+
if stage_file is not None:
|
|
646
|
+
stage_writer.writerow(stages)
|
|
647
|
+
if froude_file is not None:
|
|
648
|
+
froude_writer.writerow(froudes)
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
class Interpolation_function:
|
|
652
|
+
"""Interpolation_interface - creates callable object f(t, id) or f(t,x,y)
|
|
653
|
+
which is interpolated from time series defined at vertices of
|
|
654
|
+
triangular mesh (such as those stored in sww files)
|
|
655
|
+
|
|
656
|
+
Let m be the number of vertices, n the number of triangles
|
|
657
|
+
and p the number of timesteps.
|
|
658
|
+
Also, let N be the number of interpolation points.
|
|
659
|
+
|
|
660
|
+
Mandatory input
|
|
661
|
+
time: px1 array of monotonously increasing times (float)
|
|
662
|
+
quantities: Dictionary of arrays or 1 array (float)
|
|
663
|
+
The arrays must either have dimensions pxm or mx1.
|
|
664
|
+
The resulting function will be time dependent in
|
|
665
|
+
the former case while it will be constant with
|
|
666
|
+
respect to time in the latter case.
|
|
667
|
+
|
|
668
|
+
Optional input:
|
|
669
|
+
quantity_names: List of keys into the quantities dictionary for
|
|
670
|
+
imposing a particular order on the output vector.
|
|
671
|
+
vertex_coordinates: mx2 array of coordinates (float)
|
|
672
|
+
triangles: nx3 array of indices into vertex_coordinates (int)
|
|
673
|
+
interpolation_points: Nx2 array of coordinates to be interpolated to
|
|
674
|
+
verbose: Level of reporting
|
|
675
|
+
|
|
676
|
+
The quantities returned by the callable object are specified by
|
|
677
|
+
the list quantities which must contain the names of the
|
|
678
|
+
quantities to be returned and also reflect the order, e.g. for
|
|
679
|
+
the shallow water wave equation, on would have
|
|
680
|
+
quantities = ['stage', 'xmomentum', 'ymomentum']
|
|
681
|
+
|
|
682
|
+
The parameter interpolation_points decides at which points interpolated
|
|
683
|
+
quantities are to be computed whenever object is called.
|
|
684
|
+
If None, return average value
|
|
685
|
+
|
|
686
|
+
FIXME (Ole): Need to allow vertex coordinates and interpolation points to
|
|
687
|
+
be geospatial data objects
|
|
688
|
+
|
|
689
|
+
(FIXME (Ole): This comment should be removed)
|
|
690
|
+
Time assumed to be relative to starttime
|
|
691
|
+
All coordinates assume origin of (0,0) - e.g. georeferencing must be
|
|
692
|
+
taken care of outside this function
|
|
693
|
+
"""
|
|
694
|
+
|
|
695
|
+
def __init__(self,
|
|
696
|
+
time,
|
|
697
|
+
quantities,
|
|
698
|
+
quantity_names=None,
|
|
699
|
+
vertex_coordinates=None,
|
|
700
|
+
triangles=None,
|
|
701
|
+
interpolation_points=None,
|
|
702
|
+
time_thinning=1,
|
|
703
|
+
verbose=False,
|
|
704
|
+
gauge_neighbour_id=None,
|
|
705
|
+
output_centroids=False):
|
|
706
|
+
"""Initialise object and build spatial interpolation if required
|
|
707
|
+
|
|
708
|
+
Time_thinning_number controls how many timesteps to use. Only timesteps
|
|
709
|
+
with index%time_thinning_number == 0 will used, or in other words a
|
|
710
|
+
value of 3, say, will cause the algorithm to use every third time step.
|
|
711
|
+
"""
|
|
712
|
+
|
|
713
|
+
from anuga.config import time_format
|
|
714
|
+
|
|
715
|
+
if verbose is True:
|
|
716
|
+
log.critical('Interpolation_function: input checks')
|
|
717
|
+
|
|
718
|
+
# Check temporal info
|
|
719
|
+
time = ensure_numeric(time)
|
|
720
|
+
|
|
721
|
+
if not num.alltrue(time[1:] - time[:-1] >= 0):
|
|
722
|
+
# This message is time consuming to form due to the conversion of
|
|
723
|
+
msg = 'Time must be a monotonuosly increasing sequence %s' % time
|
|
724
|
+
raise Exception(msg)
|
|
725
|
+
|
|
726
|
+
# Check if quantities is a single array only
|
|
727
|
+
if not isinstance(quantities, dict):
|
|
728
|
+
quantities = ensure_numeric(quantities)
|
|
729
|
+
quantity_names = ['Attribute']
|
|
730
|
+
|
|
731
|
+
# Make it a dictionary
|
|
732
|
+
quantities = {quantity_names[0]: quantities}
|
|
733
|
+
|
|
734
|
+
# Use keys if no names are specified
|
|
735
|
+
if quantity_names is None:
|
|
736
|
+
quantity_names = quantities.keys()
|
|
737
|
+
|
|
738
|
+
# Check spatial info
|
|
739
|
+
if vertex_coordinates is None:
|
|
740
|
+
self.spatial = False
|
|
741
|
+
else:
|
|
742
|
+
# FIXME (Ole): Try ensure_numeric here -
|
|
743
|
+
# this function knows nothing about georefering.
|
|
744
|
+
vertex_coordinates = ensure_absolute(vertex_coordinates)
|
|
745
|
+
|
|
746
|
+
if triangles is not None:
|
|
747
|
+
triangles = ensure_numeric(triangles)
|
|
748
|
+
self.spatial = True
|
|
749
|
+
|
|
750
|
+
if verbose is True:
|
|
751
|
+
log.critical('Interpolation_function: thinning by %d'
|
|
752
|
+
% time_thinning)
|
|
753
|
+
|
|
754
|
+
|
|
755
|
+
# Thin timesteps if needed
|
|
756
|
+
# Note array() is used to make the thinned arrays contiguous in memory
|
|
757
|
+
self.time = num.array(time[::time_thinning])
|
|
758
|
+
for name in quantity_names:
|
|
759
|
+
if len(quantities[name].shape) == 2:
|
|
760
|
+
quantities[name] = num.array(quantities[name][::time_thinning,:])
|
|
761
|
+
|
|
762
|
+
if verbose is True:
|
|
763
|
+
log.critical('Interpolation_function: precomputing')
|
|
764
|
+
|
|
765
|
+
# Save for use with statistics
|
|
766
|
+
self.quantities_range = {}
|
|
767
|
+
for name in quantity_names:
|
|
768
|
+
q = quantities[name][:].flatten()
|
|
769
|
+
self.quantities_range[name] = [min(q), max(q)]
|
|
770
|
+
|
|
771
|
+
self.quantity_names = quantity_names
|
|
772
|
+
self.vertex_coordinates = vertex_coordinates
|
|
773
|
+
self.interpolation_points = interpolation_points
|
|
774
|
+
|
|
775
|
+
self.index = 0 # Initial time index
|
|
776
|
+
self.precomputed_values = {}
|
|
777
|
+
self.centroids = []
|
|
778
|
+
|
|
779
|
+
# Precomputed spatial interpolation if requested
|
|
780
|
+
if interpolation_points is not None:
|
|
781
|
+
#no longer true. sts files have spatial = True but
|
|
782
|
+
#if self.spatial is False:
|
|
783
|
+
# raise Exception('Triangles and vertex_coordinates must be specified')
|
|
784
|
+
#
|
|
785
|
+
try:
|
|
786
|
+
self.interpolation_points = \
|
|
787
|
+
interpolation_points = ensure_numeric(interpolation_points)
|
|
788
|
+
except:
|
|
789
|
+
msg = 'Interpolation points must be an N x 2 numeric array ' \
|
|
790
|
+
'or a list of points\n'
|
|
791
|
+
msg += 'Got: %s.' %(str(self.interpolation_points)[:60] + '...')
|
|
792
|
+
raise Exception(msg)
|
|
793
|
+
|
|
794
|
+
# Ensure 'mesh_boundary_polygon' is defined
|
|
795
|
+
mesh_boundary_polygon = None
|
|
796
|
+
|
|
797
|
+
if triangles is not None and vertex_coordinates is not None:
|
|
798
|
+
# Check that all interpolation points fall within
|
|
799
|
+
# mesh boundary as defined by triangles and vertex_coordinates.
|
|
800
|
+
from anuga.abstract_2d_finite_volumes.neighbour_mesh import Mesh
|
|
801
|
+
from anuga.geometry.polygon import outside_polygon
|
|
802
|
+
|
|
803
|
+
# Create temporary mesh object from mesh info passed
|
|
804
|
+
# into this function.
|
|
805
|
+
mesh = Mesh(vertex_coordinates, triangles)
|
|
806
|
+
mesh_boundary_polygon = mesh.get_boundary_polygon()
|
|
807
|
+
|
|
808
|
+
indices = outside_polygon(interpolation_points,
|
|
809
|
+
mesh_boundary_polygon)
|
|
810
|
+
|
|
811
|
+
# Record result
|
|
812
|
+
#self.mesh_boundary_polygon = mesh_boundary_polygon
|
|
813
|
+
self.indices_outside_mesh = indices
|
|
814
|
+
|
|
815
|
+
# Report
|
|
816
|
+
if len(indices) > 0:
|
|
817
|
+
msg = 'Interpolation points in Interpolation function fall '
|
|
818
|
+
msg += 'outside specified mesh. Offending points:\n'
|
|
819
|
+
out_interp_pts = []
|
|
820
|
+
for i in indices:
|
|
821
|
+
msg += '%d: %s\n' % (i, interpolation_points[i])
|
|
822
|
+
out_interp_pts.append(
|
|
823
|
+
ensure_numeric(interpolation_points[i]))
|
|
824
|
+
|
|
825
|
+
if verbose is True:
|
|
826
|
+
import sys
|
|
827
|
+
from anuga.geometry.polygon import plot_polygons
|
|
828
|
+
title = ('Interpolation points fall '
|
|
829
|
+
'outside specified mesh')
|
|
830
|
+
plot_polygons([mesh_boundary_polygon,
|
|
831
|
+
interpolation_points,
|
|
832
|
+
out_interp_pts],
|
|
833
|
+
['line', 'point', 'outside'],
|
|
834
|
+
figname='points_boundary_out',
|
|
835
|
+
label=title)
|
|
836
|
+
|
|
837
|
+
# Joaquim Luis suggested this as an Exception, so
|
|
838
|
+
# that the user can now what the problem is rather than
|
|
839
|
+
# looking for NaN's. However, NANs are handy as they can
|
|
840
|
+
# be ignored leaving good points for continued processing.
|
|
841
|
+
if verbose:
|
|
842
|
+
log.critical(msg)
|
|
843
|
+
#raise Exception(msg)
|
|
844
|
+
|
|
845
|
+
elif triangles is None and vertex_coordinates is not None: #jj
|
|
846
|
+
#Dealing with sts file
|
|
847
|
+
pass
|
|
848
|
+
else:
|
|
849
|
+
raise Exception('Sww file function requires both triangles and '
|
|
850
|
+
'vertex_coordinates. sts file file function '
|
|
851
|
+
'requires the latter.')
|
|
852
|
+
|
|
853
|
+
# Plot boundary and interpolation points,
|
|
854
|
+
# but only if if 'mesh_boundary_polygon' has data.
|
|
855
|
+
if verbose is True and mesh_boundary_polygon is not None:
|
|
856
|
+
import sys
|
|
857
|
+
if sys.platform == 'win32':
|
|
858
|
+
from anuga.geometry.polygon import plot_polygons
|
|
859
|
+
title = ('Interpolation function: '
|
|
860
|
+
'Polygon and interpolation points')
|
|
861
|
+
plot_polygons([mesh_boundary_polygon,
|
|
862
|
+
interpolation_points],
|
|
863
|
+
['line', 'point'],
|
|
864
|
+
figname='points_boundary',
|
|
865
|
+
label=title)
|
|
866
|
+
|
|
867
|
+
m = len(self.interpolation_points)
|
|
868
|
+
p = len(self.time)
|
|
869
|
+
|
|
870
|
+
for name in quantity_names:
|
|
871
|
+
self.precomputed_values[name] = num.zeros((p, m), num.float)
|
|
872
|
+
|
|
873
|
+
if verbose is True:
|
|
874
|
+
log.critical('Build interpolator')
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
# Build interpolator
|
|
878
|
+
if triangles is not None and vertex_coordinates is not None:
|
|
879
|
+
if verbose:
|
|
880
|
+
msg = 'Building interpolation matrix from source mesh '
|
|
881
|
+
msg += '(%d vertices, %d triangles)' \
|
|
882
|
+
% (vertex_coordinates.shape[0],
|
|
883
|
+
triangles.shape[0])
|
|
884
|
+
log.critical(msg)
|
|
885
|
+
|
|
886
|
+
# This one is no longer needed for STS files
|
|
887
|
+
interpol = Interpolate(vertex_coordinates,
|
|
888
|
+
triangles,
|
|
889
|
+
verbose=verbose)
|
|
890
|
+
|
|
891
|
+
elif triangles is None and vertex_coordinates is not None:
|
|
892
|
+
if verbose:
|
|
893
|
+
log.critical('Interpolation from STS file')
|
|
894
|
+
|
|
895
|
+
|
|
896
|
+
|
|
897
|
+
if verbose:
|
|
898
|
+
log.critical('Interpolating (%d interpolation points, %d timesteps).'
|
|
899
|
+
% (self.interpolation_points.shape[0], self.time.shape[0]))
|
|
900
|
+
|
|
901
|
+
if time_thinning > 1:
|
|
902
|
+
log.critical('Timesteps were thinned by a factor of %d'
|
|
903
|
+
% time_thinning)
|
|
904
|
+
else:
|
|
905
|
+
log.critical()
|
|
906
|
+
|
|
907
|
+
for i, t in enumerate(self.time):
|
|
908
|
+
# Interpolate quantities at this timestep
|
|
909
|
+
#if verbose and i%((p+10)/10) == 0:
|
|
910
|
+
if verbose:
|
|
911
|
+
log.critical(' time step %d of %d' % (i, p))
|
|
912
|
+
|
|
913
|
+
for name in quantity_names:
|
|
914
|
+
if len(quantities[name].shape) == 2:
|
|
915
|
+
Q = quantities[name][i,:] # Quantities at timestep i
|
|
916
|
+
else:
|
|
917
|
+
Q = quantities[name][:] # No time dependency
|
|
918
|
+
|
|
919
|
+
#if verbose and i%((p+10)/10) == 0:
|
|
920
|
+
if verbose:
|
|
921
|
+
log.critical(' quantity %s, size=%d' % (name, len(Q)))
|
|
922
|
+
|
|
923
|
+
# Interpolate
|
|
924
|
+
if triangles is not None and vertex_coordinates is not None:
|
|
925
|
+
result = interpol.interpolate(Q,
|
|
926
|
+
point_coordinates=\
|
|
927
|
+
self.interpolation_points,
|
|
928
|
+
verbose=False,
|
|
929
|
+
output_centroids=output_centroids)
|
|
930
|
+
self.centroids = interpol.centroids
|
|
931
|
+
elif triangles is None and vertex_coordinates is not None:
|
|
932
|
+
result = interpolate_polyline(Q,
|
|
933
|
+
vertex_coordinates,
|
|
934
|
+
gauge_neighbour_id,
|
|
935
|
+
interpolation_points=\
|
|
936
|
+
self.interpolation_points)
|
|
937
|
+
|
|
938
|
+
#assert len(result), len(interpolation_points)
|
|
939
|
+
self.precomputed_values[name][i, :] = result
|
|
940
|
+
|
|
941
|
+
# Report
|
|
942
|
+
if verbose:
|
|
943
|
+
log.critical(self.statistics())
|
|
944
|
+
else:
|
|
945
|
+
# Store quantitites as is
|
|
946
|
+
for name in quantity_names:
|
|
947
|
+
self.precomputed_values[name] = quantities[name]
|
|
948
|
+
|
|
949
|
+
# def __repr__(self):
|
|
950
|
+
# # return 'Interpolation function (spatio-temporal)'
|
|
951
|
+
# return self.statistics()
|
|
952
|
+
|
|
953
|
+
def __call__(self, t, point_id=None, x=None, y=None):
|
|
954
|
+
"""Evaluate f(t) or f(t, point_id)
|
|
955
|
+
|
|
956
|
+
Inputs:
|
|
957
|
+
t: time - Model time. Must lie within existing timesteps
|
|
958
|
+
point_id: index of one of the preprocessed points.
|
|
959
|
+
|
|
960
|
+
If spatial info is present and all of point_id
|
|
961
|
+
are None an exception is raised
|
|
962
|
+
|
|
963
|
+
If no spatial info is present, point_id arguments are ignored
|
|
964
|
+
making f a function of time only.
|
|
965
|
+
|
|
966
|
+
FIXME: f(t, x, y) x, y could overrided location, point_id ignored
|
|
967
|
+
FIXME: point_id could also be a slice
|
|
968
|
+
FIXME: What if x and y are vectors?
|
|
969
|
+
FIXME: What about f(x,y) without t?
|
|
970
|
+
"""
|
|
971
|
+
|
|
972
|
+
from math import pi, cos, sin, sqrt
|
|
973
|
+
|
|
974
|
+
if self.spatial is True:
|
|
975
|
+
if point_id is None:
|
|
976
|
+
if x is None or y is None:
|
|
977
|
+
msg = 'Either point_id or x and y must be specified'
|
|
978
|
+
raise Exception(msg)
|
|
979
|
+
else:
|
|
980
|
+
if self.interpolation_points is None:
|
|
981
|
+
msg = 'Interpolation_function must be instantiated ' + \
|
|
982
|
+
'with a list of interpolation points before ' + \
|
|
983
|
+
'parameter point_id can be used'
|
|
984
|
+
raise Exception(msg)
|
|
985
|
+
|
|
986
|
+
msg = 'Time interval [%.16f:%.16f]' % (self.time[0], self.time[-1])
|
|
987
|
+
msg += ' does not match model time: %.16f\n' % t
|
|
988
|
+
if t < self.time[0]: raise Modeltime_too_early(msg)
|
|
989
|
+
if t > self.time[-1]: raise Modeltime_too_late(msg)
|
|
990
|
+
|
|
991
|
+
oldindex = self.index #Time index
|
|
992
|
+
|
|
993
|
+
# Find current time slot
|
|
994
|
+
while t > self.time[self.index]: self.index += 1
|
|
995
|
+
while t < self.time[self.index]: self.index -= 1
|
|
996
|
+
|
|
997
|
+
if t == self.time[self.index]:
|
|
998
|
+
# Protect against case where t == T[-1] (last time)
|
|
999
|
+
# - also works in general when t == T[i]
|
|
1000
|
+
ratio = 0
|
|
1001
|
+
else:
|
|
1002
|
+
# t is now between index and index+1
|
|
1003
|
+
ratio = ((t - self.time[self.index]) /
|
|
1004
|
+
(self.time[self.index+1] - self.time[self.index]))
|
|
1005
|
+
|
|
1006
|
+
# Compute interpolated values
|
|
1007
|
+
q = num.zeros(len(self.quantity_names), num.float)
|
|
1008
|
+
for i, name in enumerate(self.quantity_names):
|
|
1009
|
+
Q = self.precomputed_values[name]
|
|
1010
|
+
|
|
1011
|
+
if self.spatial is False:
|
|
1012
|
+
# If there is no spatial info
|
|
1013
|
+
assert len(Q.shape) == 1
|
|
1014
|
+
|
|
1015
|
+
Q0 = Q[self.index]
|
|
1016
|
+
if ratio > 0: Q1 = Q[self.index+1]
|
|
1017
|
+
else:
|
|
1018
|
+
if x is not None and y is not None:
|
|
1019
|
+
# Interpolate to x, y
|
|
1020
|
+
raise Exception('x,y interpolation not yet implemented')
|
|
1021
|
+
else:
|
|
1022
|
+
# Use precomputed point
|
|
1023
|
+
Q0 = Q[self.index, point_id]
|
|
1024
|
+
if ratio > 0:
|
|
1025
|
+
Q1 = Q[self.index+1, point_id]
|
|
1026
|
+
|
|
1027
|
+
# Linear temporal interpolation
|
|
1028
|
+
if ratio > 0:
|
|
1029
|
+
if Q0 == NAN and Q1 == NAN:
|
|
1030
|
+
q[i] = Q0
|
|
1031
|
+
else:
|
|
1032
|
+
q[i] = Q0 + ratio*(Q1 - Q0)
|
|
1033
|
+
else:
|
|
1034
|
+
q[i] = Q0
|
|
1035
|
+
|
|
1036
|
+
# Return vector of interpolated values
|
|
1037
|
+
# FIXME:
|
|
1038
|
+
if self.spatial is True:
|
|
1039
|
+
return q
|
|
1040
|
+
else:
|
|
1041
|
+
# Replicate q according to x and y
|
|
1042
|
+
# This is e.g used for Wind_stress
|
|
1043
|
+
if x is None or y is None:
|
|
1044
|
+
return q
|
|
1045
|
+
else:
|
|
1046
|
+
try:
|
|
1047
|
+
N = len(x)
|
|
1048
|
+
except:
|
|
1049
|
+
return q
|
|
1050
|
+
else:
|
|
1051
|
+
# x is a vector - Create one constant column for each value
|
|
1052
|
+
N = len(x)
|
|
1053
|
+
assert len(y) == N, 'x and y must have same length'
|
|
1054
|
+
res = []
|
|
1055
|
+
for col in q:
|
|
1056
|
+
res.append(col*num.ones(N, num.float))
|
|
1057
|
+
|
|
1058
|
+
return res
|
|
1059
|
+
|
|
1060
|
+
def get_time(self):
|
|
1061
|
+
"""Return model time as a vector of timesteps
|
|
1062
|
+
"""
|
|
1063
|
+
return self.time
|
|
1064
|
+
|
|
1065
|
+
def statistics(self):
|
|
1066
|
+
"""Output statistics about interpolation_function
|
|
1067
|
+
"""
|
|
1068
|
+
|
|
1069
|
+
vertex_coordinates = self.vertex_coordinates
|
|
1070
|
+
interpolation_points = self.interpolation_points
|
|
1071
|
+
quantity_names = self.quantity_names
|
|
1072
|
+
#quantities = self.quantities
|
|
1073
|
+
precomputed_values = self.precomputed_values
|
|
1074
|
+
|
|
1075
|
+
msg = '------------------------------------------------\n'
|
|
1076
|
+
msg += 'Interpolation_function (spatio-temporal) statistics:\n'
|
|
1077
|
+
msg += ' Extent:\n'
|
|
1078
|
+
if vertex_coordinates is not None:
|
|
1079
|
+
x = vertex_coordinates[:,0]
|
|
1080
|
+
y = vertex_coordinates[:,1]
|
|
1081
|
+
|
|
1082
|
+
msg += ' x in [%f, %f], len(x) == %d\n'\
|
|
1083
|
+
%(min(x), max(x), len(x))
|
|
1084
|
+
msg += ' y in [%f, %f], len(y) == %d\n'\
|
|
1085
|
+
%(min(y), max(y), len(y))
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
msg += ' t in [%f, %f], len(t) == %d\n'\
|
|
1090
|
+
%(min(self.time), max(self.time), len(self.time))
|
|
1091
|
+
msg += ' Quantities:\n'
|
|
1092
|
+
for name in quantity_names:
|
|
1093
|
+
minq, maxq = self.quantities_range[name]
|
|
1094
|
+
msg += ' %s in [%f, %f]\n' %(name, minq, maxq)
|
|
1095
|
+
#q = quantities[name][:].flatten()
|
|
1096
|
+
#str += ' %s in [%f, %f]\n' %(name, min(q), max(q))
|
|
1097
|
+
|
|
1098
|
+
if interpolation_points is not None:
|
|
1099
|
+
msg += ' Interpolation points (xi, eta):'\
|
|
1100
|
+
' number of points == %d\n' %interpolation_points.shape[0]
|
|
1101
|
+
msg += ' xi in [%f, %f]\n' %(min(interpolation_points[:,0]),
|
|
1102
|
+
max(interpolation_points[:,0]))
|
|
1103
|
+
msg += ' eta in [%f, %f]\n' %(min(interpolation_points[:,1]),
|
|
1104
|
+
max(interpolation_points[:,1]))
|
|
1105
|
+
msg += ' Interpolated quantities (over all timesteps):\n'
|
|
1106
|
+
|
|
1107
|
+
for name in quantity_names:
|
|
1108
|
+
q = precomputed_values[name][:].flatten()
|
|
1109
|
+
msg += ' %s at interpolation points in [%f, %f]\n'\
|
|
1110
|
+
%(name, min(q), max(q))
|
|
1111
|
+
msg += '------------------------------------------------\n'
|
|
1112
|
+
|
|
1113
|
+
return msg
|
|
1114
|
+
|
|
1115
|
+
|
|
1116
|
+
def interpolate_sww(sww_file, time, interpolation_points,
|
|
1117
|
+
quantity_names=None, verbose=False):
|
|
1118
|
+
"""
|
|
1119
|
+
obsolete.
|
|
1120
|
+
use file_function in utils
|
|
1121
|
+
"""
|
|
1122
|
+
|
|
1123
|
+
#open sww file
|
|
1124
|
+
x, y, volumes, time, quantities = read_sww(sww_file)
|
|
1125
|
+
log.critical("x=%s" % str(x))
|
|
1126
|
+
log.critical("y=%s" % str(y))
|
|
1127
|
+
|
|
1128
|
+
log.critical("time=%s" % str(time))
|
|
1129
|
+
log.critical("quantities=%s" % str(quantities))
|
|
1130
|
+
|
|
1131
|
+
#Add the x and y together
|
|
1132
|
+
vertex_coordinates = num.concatenate((x[:,num.newaxis], y[:,num.newaxis]),
|
|
1133
|
+
axis=1)
|
|
1134
|
+
|
|
1135
|
+
#Will return the quantity values at the specified times and locations
|
|
1136
|
+
interp = Interpolation_interface(time,
|
|
1137
|
+
quantities,
|
|
1138
|
+
quantity_names=quantity_names,
|
|
1139
|
+
vertex_coordinates=vertex_coordinates,
|
|
1140
|
+
triangles=volumes,
|
|
1141
|
+
interpolation_points=interpolation_points,
|
|
1142
|
+
verbose=verbose)
|
|
1143
|
+
|
|
1144
|
+
|