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.
Files changed (870) hide show
  1. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__config__.py +21 -0
  2. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__config__.pyc +0 -0
  3. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__init__.py +363 -0
  4. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__init__.pyc +0 -0
  5. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__metadata__.py +6 -0
  6. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/__metadata__.pyc +0 -0
  7. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/__init__.py +17 -0
  8. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/__init__.pyc +0 -0
  9. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/ermapper_grids.py +251 -0
  10. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/ermapper_grids.pyc +0 -0
  11. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/file_function.py +483 -0
  12. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/file_function.pyc +0 -0
  13. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/gauge.py +1080 -0
  14. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/gauge.pyc +0 -0
  15. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/general_mesh.py +865 -0
  16. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/general_mesh.pyc +0 -0
  17. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_boundary_conditions.py +862 -0
  18. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_boundary_conditions.pyc +0 -0
  19. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_domain.py +2274 -0
  20. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/generic_domain.pyc +0 -0
  21. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory.py +1011 -0
  22. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory.pyc +0 -0
  23. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/mesh_factory_ext.pyd +0 -0
  24. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh.py +1488 -0
  25. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh.pyc +0 -0
  26. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_mesh_ext.pyd +0 -0
  27. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/neighbour_table_ext.pyd +0 -0
  28. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain.py +299 -0
  29. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain.pyc +0 -0
  30. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/pmesh2domain_ext.pyd +0 -0
  31. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity.py +2162 -0
  32. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity.pyc +0 -0
  33. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/quantity_ext.pyd +0 -0
  34. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/region.py +321 -0
  35. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/region.pyc +0 -0
  36. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/setup.py +48 -0
  37. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/setup.pyc +0 -0
  38. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tag_region.py +167 -0
  39. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tag_region.pyc +0 -0
  40. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/__init__.py +8 -0
  41. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/show_balanced_limiters.py +87 -0
  42. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_ermapper.py +189 -0
  43. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_gauge.py +539 -0
  44. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_general_mesh.py +517 -0
  45. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_generic_boundary_conditions.py +439 -0
  46. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_generic_domain.py +907 -0
  47. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_ghost.py +52 -0
  48. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_neighbour_mesh.py +1854 -0
  49. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_pmesh2domain.py +219 -0
  50. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_quantity.py +2859 -0
  51. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_region.py +99 -0
  52. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_tag_region.py +258 -0
  53. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/tests/test_util.py +1632 -0
  54. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/util.py +928 -0
  55. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/abstract_2d_finite_volumes/util.pyc +0 -0
  56. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/__init__.py +12 -0
  57. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/__init__.pyc +0 -0
  58. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection.py +298 -0
  59. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection.pyc +0 -0
  60. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/advection_ext.pyd +0 -0
  61. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/setup.py +27 -0
  62. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/setup.pyc +0 -0
  63. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/tests/__init__.py +8 -0
  64. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/advection/tests/test_advection.py +183 -0
  65. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/__init__.py +4 -0
  66. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/__init__.pyc +0 -0
  67. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/alpha_shape.py +654 -0
  68. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/alpha_shape.pyc +0 -0
  69. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/setup.py +21 -0
  70. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/setup.pyc +0 -0
  71. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/tests/__init__.py +8 -0
  72. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/alpha_shape/tests/test_alpha_shape.py +402 -0
  73. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/anuga_exceptions.py +46 -0
  74. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/anuga_exceptions.pyc +0 -0
  75. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/__init__.py +18 -0
  76. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/__init__.pyc +0 -0
  77. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/caching.py +2531 -0
  78. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/caching.pyc +0 -0
  79. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/dummy_classes_for_testing.py +20 -0
  80. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/dummy_classes_for_testing.pyc +0 -0
  81. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/setup.py +21 -0
  82. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/setup.pyc +0 -0
  83. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/tests/__init__.py +8 -0
  84. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/caching/tests/test_caching.py +895 -0
  85. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/compile_all.py +82 -0
  86. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/compile_all.pyc +0 -0
  87. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/config.py +273 -0
  88. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/config.pyc +0 -0
  89. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/__init__.py +6 -0
  90. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/__init__.pyc +0 -0
  91. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/geo_reference.py +478 -0
  92. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/geo_reference.pyc +0 -0
  93. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/lat_long_UTM_conversion.py +250 -0
  94. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/lat_long_UTM_conversion.pyc +0 -0
  95. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/point.py +128 -0
  96. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/point.pyc +0 -0
  97. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/redfearn.py +233 -0
  98. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/redfearn.pyc +0 -0
  99. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/setup.py +21 -0
  100. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/setup.pyc +0 -0
  101. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/__init__.py +8 -0
  102. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points.csv +11 -0
  103. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points.lic +17 -0
  104. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z53.csv +11 -0
  105. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z53.lic +17 -0
  106. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z54.csv +11 -0
  107. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/projection_test_points_z54.lic +17 -0
  108. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/redfearn.lic +17 -0
  109. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/data/redfearn.xls +0 -0
  110. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_geo_reference.py +716 -0
  111. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_lat_long_UTM_conversion.py +126 -0
  112. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_point.py +125 -0
  113. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/coordinate_transforms/tests/test_redfearn.py +508 -0
  114. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/__init__.py +9 -0
  115. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/__init__.pyc +0 -0
  116. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_class.py +1627 -0
  117. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_class.pyc +0 -0
  118. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_polygons.py +114 -0
  119. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_polygons.pyc +0 -0
  120. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_routines.py +362 -0
  121. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/culvert_routines.pyc +0 -0
  122. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/new_culvert_class.py +1630 -0
  123. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/new_culvert_class.pyc +0 -0
  124. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/setup.py +21 -0
  125. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/setup.pyc +0 -0
  126. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/__init__.py +8 -0
  127. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/culvert_polygons_example.py +38 -0
  128. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve.csv +20 -0
  129. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve.lic +17 -0
  130. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve2.csv +20 -0
  131. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/example_rating_curve2.lic +17 -0
  132. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/unittests.lic +17 -0
  133. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/data/unittests.xls +0 -0
  134. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/run_culvert_flat_water_lev.py +173 -0
  135. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_class.py +812 -0
  136. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_polygons.py +84 -0
  137. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines.py +586 -0
  138. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_box_10pct.py +342 -0
  139. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_box_1pct.py +342 -0
  140. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_pipe_10pct.py +338 -0
  141. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_culvert_routines_pipe_1pct.py +338 -0
  142. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/culvert_flows/tests/test_new_culvert_class.py +810 -0
  143. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/__init__.py +9 -0
  144. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/__init__.pyc +0 -0
  145. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/exposure.py +223 -0
  146. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/exposure.pyc +0 -0
  147. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/inundation_damage.py +467 -0
  148. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/inundation_damage.pyc +0 -0
  149. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/setup.py +21 -0
  150. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/setup.pyc +0 -0
  151. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/__init__.py +8 -0
  152. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/test_exposure.py +325 -0
  153. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/damage_modelling/tests/test_inundation_damage.py +610 -0
  154. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/error_api.py +130 -0
  155. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/error_api.pyc +0 -0
  156. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/extras.py +193 -0
  157. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/extras.pyc +0 -0
  158. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/__init__.py +54 -0
  159. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/__init__.pyc +0 -0
  160. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/csv_file.py +399 -0
  161. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/csv_file.pyc +0 -0
  162. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/mux.py +120 -0
  163. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/mux.pyc +0 -0
  164. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/netcdf.py +266 -0
  165. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/netcdf.pyc +0 -0
  166. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/pts.py +29 -0
  167. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/pts.pyc +0 -0
  168. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/setup.py +27 -0
  169. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/setup.pyc +0 -0
  170. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sts.py +293 -0
  171. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sts.pyc +0 -0
  172. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sww.py +1552 -0
  173. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/sww.pyc +0 -0
  174. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/__init__.py +8 -0
  175. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_csv.py +413 -0
  176. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_mux.py +1539 -0
  177. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_read_sww.py +350 -0
  178. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_sww.py +560 -0
  179. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_ungenerate.py +283 -0
  180. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/tests/test_urs.py +217 -0
  181. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/ungenerate.py +92 -0
  182. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/ungenerate.pyc +0 -0
  183. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs.py +323 -0
  184. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs.pyc +0 -0
  185. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file/urs_ext.pyd +0 -0
  186. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/__init__.py +20 -0
  187. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/__init__.pyc +0 -0
  188. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/asc2dem.py +213 -0
  189. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/asc2dem.pyc +0 -0
  190. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/calc_grid_values_ext.pyd +0 -0
  191. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/csv2sts.py +165 -0
  192. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/csv2sts.pyc +0 -0
  193. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2array.py +90 -0
  194. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2array.pyc +0 -0
  195. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2dem.py +145 -0
  196. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2dem.pyc +0 -0
  197. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2pts.py +357 -0
  198. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/dem2pts.pyc +0 -0
  199. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/esri2sww.py +327 -0
  200. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/esri2sww.pyc +0 -0
  201. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/ferret2sww.py +436 -0
  202. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/ferret2sww.pyc +0 -0
  203. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/file_conversion.py +367 -0
  204. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/file_conversion.pyc +0 -0
  205. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/grd2array.py +122 -0
  206. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/grd2array.pyc +0 -0
  207. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sdf2pts.py +181 -0
  208. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sdf2pts.pyc +0 -0
  209. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/setup.py +29 -0
  210. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/setup.pyc +0 -0
  211. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sts2sww_mesh.py +141 -0
  212. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sts2sww_mesh.pyc +0 -0
  213. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2array.py +321 -0
  214. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2array.pyc +0 -0
  215. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem.py +550 -0
  216. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem.pyc +0 -0
  217. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem_new.py +547 -0
  218. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2dem_new.pyc +0 -0
  219. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2pts.py +175 -0
  220. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/sww2pts.pyc +0 -0
  221. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/__init__.py +8 -0
  222. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_2pts.py +249 -0
  223. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_csv2sts.py +118 -0
  224. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2array.py +121 -0
  225. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2dem.py +220 -0
  226. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_dem2pts.py +411 -0
  227. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_file_conversion.py +953 -0
  228. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_grd2array.py +270 -0
  229. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_sww2dem.py +1882 -0
  230. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_urs2sts.py +2127 -0
  231. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/tests/test_urs2sww.py +628 -0
  232. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2nc.py +202 -0
  233. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2nc.pyc +0 -0
  234. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sts.py +316 -0
  235. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sts.pyc +0 -0
  236. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sww.py +306 -0
  237. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2sww.pyc +0 -0
  238. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2txt.py +71 -0
  239. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/urs2txt.pyc +0 -0
  240. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/xya2pts.py +39 -0
  241. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/file_conversion/xya2pts.pyc +0 -0
  242. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/__init__.py +12 -0
  243. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/__init__.pyc +0 -0
  244. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/benchmark_least_squares.py +367 -0
  245. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/benchmark_least_squares.pyc +0 -0
  246. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fit.py +611 -0
  247. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fit.pyc +0 -0
  248. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/fitsmooth.pyd +0 -0
  249. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/general_fit_interpolate.py +127 -0
  250. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/general_fit_interpolate.pyc +0 -0
  251. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate.py +1144 -0
  252. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate.pyc +0 -0
  253. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate2d.py +305 -0
  254. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/interpolate2d.pyc +0 -0
  255. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/profile_long_benchmark.py +79 -0
  256. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/profile_long_benchmark.pyc +0 -0
  257. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/run_long_benchmark.py +131 -0
  258. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/run_long_benchmark.pyc +0 -0
  259. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/setup.py +37 -0
  260. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/setup.pyc +0 -0
  261. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_fit.py +1150 -0
  262. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_interpolate.py +1952 -0
  263. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_interpolate2d.py +469 -0
  264. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/tests/test_search_functions.py +236 -0
  265. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/ticket178_benchmark.py +66 -0
  266. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/fit_interpolate/ticket178_benchmark.pyc +0 -0
  267. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/__init__.py +11 -0
  268. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/__init__.pyc +0 -0
  269. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/aabb.py +133 -0
  270. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/aabb.pyc +0 -0
  271. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon.py +1138 -0
  272. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon.pyc +0 -0
  273. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_ext.pyd +0 -0
  274. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_function.py +133 -0
  275. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/polygon_function.pyc +0 -0
  276. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/quad.py +190 -0
  277. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/quad.pyc +0 -0
  278. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/setup.py +27 -0
  279. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/setup.pyc +0 -0
  280. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/__init__.py +8 -0
  281. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/test_geometry.py +110 -0
  282. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geometry/tests/test_polygon.py +1994 -0
  283. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/__init__.py +9 -0
  284. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/__init__.pyc +0 -0
  285. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/geospatial_data.py +1698 -0
  286. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/geospatial_data.pyc +0 -0
  287. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/setup.py +21 -0
  288. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/setup.pyc +0 -0
  289. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/geospatial_data/tests/test_geospatial_data.py +1853 -0
  290. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/__init__.py +11 -0
  291. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/__init__.pyc +0 -0
  292. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/add_csv_header.py +136 -0
  293. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/add_csv_header.pyc +0 -0
  294. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/file_length.py +14 -0
  295. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/file_length.pyc +0 -0
  296. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/maxasc.py +96 -0
  297. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/maxasc.pyc +0 -0
  298. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/order_boundary.py +109 -0
  299. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/order_boundary.pyc +0 -0
  300. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/setup.py +22 -0
  301. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/setup.pyc +0 -0
  302. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/__init__.py +8 -0
  303. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_250m.lic +17 -0
  304. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_250m_all.lic +17 -0
  305. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/perthAll_stage_original.lic +17 -0
  306. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1.asc +17 -0
  307. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1.lic +17 -0
  308. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_bad_num_lines.asc +16 -0
  309. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_bad_num_lines.lic +17 -0
  310. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_header_differs.asc +17 -0
  311. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_header_differs.lic +17 -0
  312. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_wrong_num_columns.asc +17 -0
  313. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test1_wrong_num_columns.lic +17 -0
  314. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.asc +17 -0
  315. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.expected.asc +17 -0
  316. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.expected.lic +17 -0
  317. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test2.lic +17 -0
  318. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.asc +17 -0
  319. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.expected.asc +17 -0
  320. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.expected.lic +17 -0
  321. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test3.lic +17 -0
  322. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test_maxasc.py +150 -0
  323. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/lib/tests/test_order_boundary.py +397 -0
  324. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/__init__.py +4 -0
  325. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/__init__.pyc +0 -0
  326. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/loadASCII.py +1073 -0
  327. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/loadASCII.pyc +0 -0
  328. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/setup.py +21 -0
  329. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/setup.pyc +0 -0
  330. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/load_mesh/tests/test_loadASCII.py +544 -0
  331. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/__init__.py +4 -0
  332. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/__init__.pyc +0 -0
  333. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/compile.py +9 -0
  334. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/compile.pyc +0 -0
  335. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine.py +221 -0
  336. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine.pyc +0 -0
  337. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/mesh_engine_c_layer.pyd +0 -0
  338. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/setup.py +29 -0
  339. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/setup.pyc +0 -0
  340. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/mesh_engine/tests/test_generate_mesh.py +470 -0
  341. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/__init__.py +11 -0
  342. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/__init__.pyc +0 -0
  343. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/base_operator.py +125 -0
  344. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/base_operator.pyc +0 -0
  345. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/boundary_flux_integral_operator.py +79 -0
  346. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/boundary_flux_integral_operator.pyc +0 -0
  347. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/change_friction_operator.py +240 -0
  348. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/change_friction_operator.pyc +0 -0
  349. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_quantities_operator.py +142 -0
  350. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_quantities_operator.pyc +0 -0
  351. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_stage_operator.py +85 -0
  352. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/collect_max_stage_operator.pyc +0 -0
  353. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/compile_all.py +16 -0
  354. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/compile_all.pyc +0 -0
  355. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/elliptic_operator.py +495 -0
  356. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/elliptic_operator.pyc +0 -0
  357. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/erosion_operators.py +859 -0
  358. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/erosion_operators.pyc +0 -0
  359. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator.py +563 -0
  360. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator.pyc +0 -0
  361. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/kinematic_viscosity_operator_ext.pyd +0 -0
  362. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator.py +87 -0
  363. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator.pyc +0 -0
  364. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/mannings_operator_ext.pyd +0 -0
  365. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/rate_operators.py +431 -0
  366. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/rate_operators.pyc +0 -0
  367. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation.py +290 -0
  368. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation.pyc +0 -0
  369. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation_operator.py +148 -0
  370. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_elevation_operator.pyc +0 -0
  371. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_friction_operators.py +159 -0
  372. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_friction_operators.pyc +0 -0
  373. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity.py +172 -0
  374. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity.pyc +0 -0
  375. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity_operator.py +158 -0
  376. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_quantity_operator.pyc +0 -0
  377. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage.py +131 -0
  378. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage.pyc +0 -0
  379. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage_operator.py +135 -0
  380. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_stage_operator.pyc +0 -0
  381. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_w_uh_vh_operator.py +170 -0
  382. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/set_w_uh_vh_operator.pyc +0 -0
  383. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/setup.py +33 -0
  384. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/setup.pyc +0 -0
  385. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_base_operator.py +51 -0
  386. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_boundary_flux_integral_operator.py +98 -0
  387. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_erosion_operators.py +344 -0
  388. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_kinematic_viscosity_operator.py +1366 -0
  389. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_rate_operators.py +888 -0
  390. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_elevation_operator.py +1034 -0
  391. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_quantity.py +511 -0
  392. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_stage_operator.py +491 -0
  393. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/operators/tests/test_set_w_uh_vh_operators.py +211 -0
  394. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/__init__.py +31 -0
  395. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/__init__.pyc +0 -0
  396. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/config.py +14 -0
  397. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/config.pyc +0 -0
  398. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/distribute_mesh.py +1682 -0
  399. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/distribute_mesh.pyc +0 -0
  400. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_advection.py +205 -0
  401. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_advection.pyc +0 -0
  402. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_api.py +467 -0
  403. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_api.pyc +0 -0
  404. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_box_operator.py +332 -0
  405. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_box_operator.pyc +0 -0
  406. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_pipe_operator.py +283 -0
  407. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_boyd_pipe_operator.pyc +0 -0
  408. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_generic_communications.py +207 -0
  409. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_generic_communications.pyc +0 -0
  410. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet.py +605 -0
  411. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet.pyc +0 -0
  412. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_enquiry.py +228 -0
  413. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_enquiry.pyc +0 -0
  414. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_operator.py +281 -0
  415. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_inlet_operator.pyc +0 -0
  416. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_internal_boundary_operator.py +230 -0
  417. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_internal_boundary_operator.pyc +0 -0
  418. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_meshes.py +445 -0
  419. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_meshes.pyc +0 -0
  420. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_operator_factory.py +959 -0
  421. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_operator_factory.pyc +0 -0
  422. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_shallow_water.py +282 -0
  423. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_shallow_water.pyc +0 -0
  424. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_structure_operator.py +1241 -0
  425. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_structure_operator.pyc +0 -0
  426. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_weir_orifice_trapezoid_operator.py +281 -0
  427. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/parallel_weir_orifice_trapezoid_operator.pyc +0 -0
  428. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/print_stats.py +205 -0
  429. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/print_stats.pyc +0 -0
  430. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/pypar_ext.py +528 -0
  431. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/pypar_ext.pyc +0 -0
  432. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/sequential_distribute.py +309 -0
  433. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/sequential_distribute.pyc +0 -0
  434. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/setup.py +100 -0
  435. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/parallel/setup.pyc +0 -0
  436. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/AppShell.py +345 -0
  437. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/AppShell.pyc +0 -0
  438. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/Pmw.py +9253 -0
  439. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/Pmw.pyc +0 -0
  440. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwBlt.py +671 -0
  441. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwBlt.pyc +0 -0
  442. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwColor.py +389 -0
  443. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/PmwColor.pyc +0 -0
  444. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ProgressBar.py +80 -0
  445. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ProgressBar.pyc +0 -0
  446. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/__init__.py +4 -0
  447. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/__init__.pyc +0 -0
  448. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/compile.py +24 -0
  449. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/compile.pyc +0 -0
  450. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/cursornames.py +8 -0
  451. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/cursornames.pyc +0 -0
  452. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/exesetup.py +24 -0
  453. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/exesetup.pyc +0 -0
  454. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/graphical_mesh_generator.py +1519 -0
  455. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/graphical_mesh_generator.pyc +0 -0
  456. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/addVertex.gif +0 -0
  457. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/addVertex.lic +16 -0
  458. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/autoSegGiveAlpha.gif +0 -0
  459. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/autoSegGiveAlpha.lic +16 -0
  460. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/default.gif +0 -0
  461. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/default.lic +16 -0
  462. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/edit.gif +0 -0
  463. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/edit.lic +16 -0
  464. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/hole.gif +0 -0
  465. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/hole.lic +16 -0
  466. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/joinVer.gif +0 -0
  467. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/joinVer.lic +16 -0
  468. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/meshGen.gif +0 -0
  469. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/meshGen.lic +16 -0
  470. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/no_see.gif +0 -0
  471. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/no_see.lic +16 -0
  472. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/pointer.gif +0 -0
  473. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/pointer.lic +16 -0
  474. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/region.gif +0 -0
  475. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/region.lic +16 -0
  476. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/see.gif +0 -0
  477. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/see.lic +16 -0
  478. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/segment.gif +0 -0
  479. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/segment.lic +16 -0
  480. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/sep.gif +0 -0
  481. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/sep.lic +16 -0
  482. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/vertex.gif +0 -0
  483. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/vertex.lic +16 -0
  484. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom0.5.gif +0 -0
  485. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom0.5.lic +16 -0
  486. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom2.gif +0 -0
  487. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoom2.lic +16 -0
  488. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoomToMesh.gif +0 -0
  489. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/icons/zoomToMesh.lic +16 -0
  490. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh.py +2416 -0
  491. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh.pyc +0 -0
  492. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_interface.py +373 -0
  493. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_interface.pyc +0 -0
  494. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_quadtree.py +130 -0
  495. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/mesh_quadtree.pyc +0 -0
  496. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/run_setup.py +43 -0
  497. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/run_setup.pyc +0 -0
  498. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/setup.py +22 -0
  499. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/setup.pyc +0 -0
  500. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_mesh.py +2129 -0
  501. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_mesh_interface.py +988 -0
  502. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/tests/test_meshquad.py +189 -0
  503. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/timing.py +150 -0
  504. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/timing.pyc +0 -0
  505. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/toolbarbutton.py +80 -0
  506. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/toolbarbutton.pyc +0 -0
  507. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ungen_example.py +69 -0
  508. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/ungen_example.pyc +0 -0
  509. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/view_tsh.py +47 -0
  510. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/view_tsh.pyc +0 -0
  511. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/visualmesh.py +302 -0
  512. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pmesh/visualmesh.pyc +0 -0
  513. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/__init__.py +6 -0
  514. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/__init__.pyc +0 -0
  515. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/metis_ext.pyd +0 -0
  516. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/setup.py +54 -0
  517. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/setup.pyc +0 -0
  518. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/tests/__init__.py +8 -0
  519. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/pymetis/tests/test_metis.py +141 -0
  520. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/setup.py +49 -0
  521. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/setup.pyc +0 -0
  522. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/__init__.py +12 -0
  523. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/__init__.pyc +0 -0
  524. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/boundaries.py +1028 -0
  525. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/boundaries.pyc +0 -0
  526. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/checkpoint.py +118 -0
  527. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/checkpoint.pyc +0 -0
  528. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/forcing.py +1339 -0
  529. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/forcing.pyc +0 -0
  530. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/most2nc.py +101 -0
  531. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/most2nc.pyc +0 -0
  532. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/setup.py +37 -0
  533. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/setup.pyc +0 -0
  534. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_domain.py +3114 -0
  535. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_domain.pyc +0 -0
  536. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/shallow_water_ext.pyd +0 -0
  537. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swDE1_domain_ext.pyd +0 -0
  538. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain.py +576 -0
  539. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain.pyc +0 -0
  540. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/swb2_domain_ext.pyd +0 -0
  541. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/sww_interrogate.py +652 -0
  542. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/sww_interrogate.pyc +0 -0
  543. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/__init__.py +8 -0
  544. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/polygon_values_example.csv +46 -0
  545. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/polygon_values_example.lic +17 -0
  546. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_large.csv +7855 -0
  547. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_large.lic +17 -0
  548. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_small.csv +17 -0
  549. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/data/test_points_small.lic +17 -0
  550. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_DE1_domain.py +111 -0
  551. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_data_manager.py +879 -0
  552. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_forcing.py +2271 -0
  553. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_loadsave.py +212 -0
  554. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_local_extrapolation_and_flux_updating.py +114 -0
  555. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_most2nc.py +52 -0
  556. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_shallow_water_domain.py +8670 -0
  557. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_swb2_domain.py +106 -0
  558. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_sww_interrogate.py +888 -0
  559. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/test_system.py +193 -0
  560. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-e-mux2 +0 -0
  561. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-n-mux2 +0 -0
  562. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.grd-z-mux2 +0 -0
  563. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/1-z.lic +55 -0
  564. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-e-mux2 +0 -0
  565. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-n-mux2 +0 -0
  566. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.grd-z-mux2 +0 -0
  567. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/2-z.lic +55 -0
  568. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-e-mux2 +0 -0
  569. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-n-mux2 +0 -0
  570. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.grd-z-mux2 +0 -0
  571. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/3-z.lic +55 -0
  572. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_0.csv +252 -0
  573. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_0.lic +25 -0
  574. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_1.csv +252 -0
  575. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_1.lic +25 -0
  576. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_2.csv +252 -0
  577. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_2.lic +25 -0
  578. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_3.csv +252 -0
  579. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_3.lic +25 -0
  580. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_4.csv +252 -0
  581. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_1_4.lic +25 -0
  582. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_0.csv +252 -0
  583. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_0.lic +25 -0
  584. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_1.csv +252 -0
  585. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_1.lic +25 -0
  586. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_2.csv +252 -0
  587. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_2.lic +25 -0
  588. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_3.csv +252 -0
  589. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_3.lic +25 -0
  590. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_4.csv +252 -0
  591. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_2_4.lic +25 -0
  592. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_0.csv +252 -0
  593. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_0.lic +25 -0
  594. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_1.csv +252 -0
  595. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_1.lic +25 -0
  596. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_2.csv +252 -0
  597. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_2.lic +25 -0
  598. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_3.csv +252 -0
  599. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_3.lic +25 -0
  600. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_4.csv +252 -0
  601. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_3_4.lic +25 -0
  602. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_0.csv +252 -0
  603. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_0.lic +25 -0
  604. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_1.csv +252 -0
  605. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_1.lic +25 -0
  606. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_2.csv +252 -0
  607. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_2.lic +25 -0
  608. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_3.csv +252 -0
  609. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_3.lic +25 -0
  610. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_4.csv +252 -0
  611. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/e_combined_4.lic +25 -0
  612. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_0.csv +252 -0
  613. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_0.lic +25 -0
  614. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_1.csv +252 -0
  615. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_1.lic +25 -0
  616. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_2.csv +252 -0
  617. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_2.lic +25 -0
  618. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_3.csv +252 -0
  619. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_3.lic +25 -0
  620. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_4.csv +252 -0
  621. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_1_4.lic +25 -0
  622. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_0.csv +252 -0
  623. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_0.lic +25 -0
  624. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_1.csv +252 -0
  625. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_1.lic +25 -0
  626. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_2.csv +252 -0
  627. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_2.lic +25 -0
  628. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_3.csv +252 -0
  629. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_3.lic +25 -0
  630. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_4.csv +252 -0
  631. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_2_4.lic +25 -0
  632. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_0.csv +252 -0
  633. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_0.lic +25 -0
  634. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_1.csv +252 -0
  635. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_1.lic +25 -0
  636. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_2.csv +252 -0
  637. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_2.lic +25 -0
  638. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_3.csv +252 -0
  639. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_3.lic +25 -0
  640. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_4.csv +252 -0
  641. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_3_4.lic +25 -0
  642. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_0.csv +252 -0
  643. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_0.lic +25 -0
  644. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_1.csv +252 -0
  645. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_1.lic +25 -0
  646. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_2.csv +252 -0
  647. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_2.lic +25 -0
  648. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_3.csv +252 -0
  649. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_3.lic +25 -0
  650. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_4.csv +252 -0
  651. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/n_combined_4.lic +25 -0
  652. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/thinned_bound_order_test.lic +18 -0
  653. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/thinned_bound_order_test.txt +6 -0
  654. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_0.csv +252 -0
  655. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_0.lic +25 -0
  656. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_1.csv +252 -0
  657. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_1.lic +25 -0
  658. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_2.csv +252 -0
  659. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_2.lic +25 -0
  660. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_3.csv +252 -0
  661. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_3.lic +25 -0
  662. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_4.csv +252 -0
  663. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_1_4.lic +25 -0
  664. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_0.csv +252 -0
  665. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_0.lic +25 -0
  666. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_1.csv +252 -0
  667. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_1.lic +25 -0
  668. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_2.csv +252 -0
  669. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_2.lic +25 -0
  670. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_3.csv +252 -0
  671. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_3.lic +25 -0
  672. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_4.csv +252 -0
  673. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_2_4.lic +25 -0
  674. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_0.csv +252 -0
  675. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_0.lic +25 -0
  676. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_1.csv +252 -0
  677. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_1.lic +25 -0
  678. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_2.csv +252 -0
  679. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_2.lic +25 -0
  680. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_3.csv +252 -0
  681. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_3.lic +25 -0
  682. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_4.csv +252 -0
  683. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_3_4.lic +25 -0
  684. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_0.csv +252 -0
  685. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_0.lic +25 -0
  686. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_1.csv +252 -0
  687. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_1.lic +25 -0
  688. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_2.csv +252 -0
  689. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_2.lic +25 -0
  690. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_3.csv +252 -0
  691. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_3.lic +25 -0
  692. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_4.csv +252 -0
  693. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tests/urs_test_data/z_combined_4.lic +25 -0
  694. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tsh2sww.py +65 -0
  695. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/shallow_water/tsh2sww.pyc +0 -0
  696. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/__init__.py +5 -0
  697. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/__init__.pyc +0 -0
  698. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator.py +380 -0
  699. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator.pyc +0 -0
  700. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator_Amended3.py +245 -0
  701. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_box_operator_Amended3.pyc +0 -0
  702. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_pipe_operator.py +305 -0
  703. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/boyd_pipe_operator.pyc +0 -0
  704. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet.py +289 -0
  705. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet.pyc +0 -0
  706. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_enquiry.py +146 -0
  707. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_enquiry.pyc +0 -0
  708. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_operator.py +229 -0
  709. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/inlet_operator.pyc +0 -0
  710. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_functions.py +431 -0
  711. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_functions.pyc +0 -0
  712. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_operator.py +169 -0
  713. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/internal_boundary_operator.pyc +0 -0
  714. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/riverwall.py +738 -0
  715. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/riverwall.pyc +0 -0
  716. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/setup.py +24 -0
  717. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/setup.pyc +0 -0
  718. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/structure_operator.py +757 -0
  719. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/structure_operator.pyc +0 -0
  720. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/hecras_bridge_table.csv +105 -0
  721. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test1.lic +17 -0
  722. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test1.tms +0 -0
  723. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test2.lic +17 -0
  724. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/inlet_operator_test2.tms +0 -0
  725. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/data/test_hydrograph.tms +0 -0
  726. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_boyd_box_operator.py +2623 -0
  727. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_boyd_pipe_operator.py +482 -0
  728. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_inlet_operator.py +311 -0
  729. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_internal_boundary_functions.py +96 -0
  730. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_riverwall_structure.py +619 -0
  731. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/tests/test_weir_orifice_trapezoid_operator.py +650 -0
  732. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/weir_orifice_trapezoid_operator.py +387 -0
  733. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/structures/weir_orifice_trapezoid_operator.pyc +0 -0
  734. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/test_all.py +282 -0
  735. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/test_all.pyc +0 -0
  736. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/__init__.py +13 -0
  737. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/__init__.pyc +0 -0
  738. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf.py +147 -0
  739. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf.pyc +0 -0
  740. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf_v2.py +559 -0
  741. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/eqf_v2.pyc +0 -0
  742. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/okada_tsunami.py +347 -0
  743. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/okada_tsunami.pyc +0 -0
  744. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/setup.py +27 -0
  745. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/setup.pyc +0 -0
  746. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/smf.py +467 -0
  747. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/smf.pyc +0 -0
  748. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_MS.lic +23 -0
  749. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_MS.txt +36 -0
  750. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SP.lic +23 -0
  751. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SP.txt +36 -0
  752. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SS.lic +23 -0
  753. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/data/fullokada_SS.txt +36 -0
  754. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/okada_tsunami_octave_95.txt +101 -0
  755. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_eq.py +67 -0
  756. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_okada_tsunami.py +439 -0
  757. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_smf.py +143 -0
  758. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tests/test_tsunami_okada.py +303 -0
  759. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tsunami_okada.py +1885 -0
  760. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/tsunami_source/tsunami_okada.pyc +0 -0
  761. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/__init__.py +11 -0
  762. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/__init__.pyc +0 -0
  763. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/argparsing.py +76 -0
  764. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/argparsing.pyc +0 -0
  765. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_ext.pyd +0 -0
  766. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_solve.py +327 -0
  767. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/cg_solve.pyc +0 -0
  768. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/compile.py +497 -0
  769. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/compile.pyc +0 -0
  770. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/csv_tools.py +121 -0
  771. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/csv_tools.pyc +0 -0
  772. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit.py +404 -0
  773. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit.pyc +0 -0
  774. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit_wrapper.py +52 -0
  775. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/data_audit_wrapper.pyc +0 -0
  776. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/file_utils.py +308 -0
  777. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/file_utils.pyc +0 -0
  778. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/function_utils.py +117 -0
  779. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/function_utils.pyc +0 -0
  780. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/interp.py +318 -0
  781. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/interp.pyc +0 -0
  782. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log.py +414 -0
  783. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log.pyc +0 -0
  784. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log_analyser.py +77 -0
  785. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/log_analyser.pyc +0 -0
  786. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/mem_time_equation.py +106 -0
  787. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/mem_time_equation.pyc +0 -0
  788. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/model_tools.py +457 -0
  789. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/model_tools.pyc +0 -0
  790. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/norms.py +16 -0
  791. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/norms.pyc +0 -0
  792. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/numerical_tools.py +397 -0
  793. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/numerical_tools.pyc +0 -0
  794. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parallel_abstraction.py +67 -0
  795. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parallel_abstraction.pyc +0 -0
  796. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parse.py +26 -0
  797. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/parse.pyc +0 -0
  798. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/plot_utils.py +1237 -0
  799. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/plot_utils.pyc +0 -0
  800. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quad_tree_ext.pyd +0 -0
  801. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quantity_setting_functions.py +612 -0
  802. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quantity_setting_functions.pyc +0 -0
  803. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quickPlots.py +164 -0
  804. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/quickPlots.pyc +0 -0
  805. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/run_anuga_script.py +70 -0
  806. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/run_anuga_script.pyc +0 -0
  807. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/setup.py +39 -0
  808. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/setup.pyc +0 -0
  809. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse.py +398 -0
  810. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse.pyc +0 -0
  811. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse_ext.pyd +0 -0
  812. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sparse_matrix_ext.pyd +0 -0
  813. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/spatialInputUtil.py +1394 -0
  814. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/spatialInputUtil.pyc +0 -0
  815. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sww_merge.py +820 -0
  816. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/sww_merge.pyc +0 -0
  817. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/system_tools.py +646 -0
  818. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/system_tools.pyc +0 -0
  819. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/terminal_width.py +60 -0
  820. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/terminal_width.pyc +0 -0
  821. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/complex_polygon.csv +4 -0
  822. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/complex_polygon.lic +17 -0
  823. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/crc_test_file.lic +17 -0
  824. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/crc_test_file.png +0 -0
  825. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/mainland_only.csv +669 -0
  826. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/mainland_only.lic +33 -0
  827. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/non_complex_polygon.csv +5 -0
  828. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/data/non_complex_polygon.lic +17 -0
  829. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_cg_solve.py +569 -0
  830. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_csv_tools.py +435 -0
  831. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_data_audit.py +393 -0
  832. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_file_utils.py +157 -0
  833. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_function_utils.py +65 -0
  834. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_log_analyser.py +89 -0
  835. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_mem_time_equation.py +47 -0
  836. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_numerical_tools.py +616 -0
  837. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_plot_utils.py +455 -0
  838. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_quantity_setting_functions.py +369 -0
  839. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_sparse.py +215 -0
  840. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_spatialInputUtil.py +418 -0
  841. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_system_tools.py +483 -0
  842. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/tests/test_xml_tools.py +316 -0
  843. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/util_ext.pyd +0 -0
  844. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/where_close.py +219 -0
  845. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/where_close.pyc +0 -0
  846. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/xml_tools.py +326 -0
  847. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/utilities/xml_tools.pyc +0 -0
  848. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/__init__.py +15 -0
  849. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/__init__.pyc +0 -0
  850. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/fabricate.py +1429 -0
  851. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/fabricate.pyc +0 -0
  852. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/parameters.py +24 -0
  853. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/parameters.pyc +0 -0
  854. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/produce_report.py +38 -0
  855. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/produce_report.pyc +0 -0
  856. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/run_validation.py +51 -0
  857. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/run_validation.pyc +0 -0
  858. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/save_parameters_tex.py +17 -0
  859. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/save_parameters_tex.pyc +0 -0
  860. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/setup.py +22 -0
  861. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/setup.pyc +0 -0
  862. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/typeset_report.py +55 -0
  863. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/validation_utilities/typeset_report.pyc +0 -0
  864. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/version.py +11 -0
  865. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga/version.pyc +0 -0
  866. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/PKG-INFO +117 -0
  867. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/SOURCES.txt +1329 -0
  868. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/dependency_links.txt +1 -0
  869. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/not-zip-safe +1 -0
  870. Users/steve/Miniconda/envs/anuga/Lib/site-packages/anuga-1.3.5-py2.7.egg-info/top_level.txt +1 -0
@@ -0,0 +1,1539 @@
1
+ import unittest
2
+ import tempfile
3
+ import numpy as num
4
+ import os
5
+ from struct import pack, unpack
6
+ from anuga.file.netcdf import NetCDFFile
7
+
8
+ from anuga.utilities.numerical_tools import ensure_numeric
9
+ from anuga.coordinate_transforms.redfearn import redfearn
10
+ from anuga.coordinate_transforms.geo_reference import Geo_reference
11
+
12
+ from anuga.file.mux import WAVEHEIGHT_MUX_LABEL, EAST_VELOCITY_LABEL, \
13
+ NORTH_VELOCITY_LABEL
14
+
15
+ from anuga.file.mux import WAVEHEIGHT_MUX2_LABEL, EAST_VELOCITY_MUX2_LABEL, \
16
+ NORTH_VELOCITY_MUX2_LABEL
17
+
18
+ from anuga.file.mux import read_mux2_py
19
+ from anuga.file_conversion.urs2sts import urs2sts
20
+ from anuga.file.urs import Read_urs
21
+
22
+ class Test_Mux(unittest.TestCase):
23
+ def setUp(self):
24
+ pass
25
+
26
+ def tearDown(self):
27
+ pass
28
+
29
+ def write_mux(self, lat_long_points, time_step_count, time_step,
30
+ depth=None, ha=None, ua=None, va=None):
31
+ """
32
+ This will write 3 non-gridded mux files, for testing.
33
+ If no quantities are passed in,
34
+ na and va quantities will be the Easting values.
35
+ Depth and ua will be the Northing value.
36
+
37
+ The mux file format has south as positive so
38
+ this function will swap the sign for va.
39
+ """
40
+
41
+ #print "lat_long_points", lat_long_points
42
+ #print "time_step_count",time_step_count
43
+ #print "time_step",
44
+
45
+
46
+ points_num = len(lat_long_points)
47
+ lonlatdeps = []
48
+ quantities = ['HA','UA','VA']
49
+
50
+ mux_names = [WAVEHEIGHT_MUX_LABEL,
51
+ EAST_VELOCITY_LABEL,
52
+ NORTH_VELOCITY_LABEL]
53
+ quantities_init = [[],[],[]]
54
+ # urs binary is latitude fastest
55
+ for point in lat_long_points:
56
+ lat = point[0]
57
+ lon = point[1]
58
+ _ , e, n = redfearn(lat, lon)
59
+ if depth is None:
60
+ this_depth = n
61
+ else:
62
+ this_depth = depth
63
+ if ha is None:
64
+ this_ha = e
65
+ else:
66
+ this_ha = ha
67
+ if ua is None:
68
+ this_ua = n
69
+ else:
70
+ this_ua = ua
71
+ if va is None:
72
+ this_va = e
73
+ else:
74
+ this_va = va
75
+ lonlatdeps.append([lon, lat, this_depth])
76
+ quantities_init[0].append(this_ha) # HA
77
+ quantities_init[1].append(this_ua) # UA
78
+ quantities_init[2].append(this_va) # VA
79
+
80
+ file_handle, base_name = tempfile.mkstemp("")
81
+ os.close(file_handle)
82
+ os.remove(base_name)
83
+
84
+ files = []
85
+ for i, q in enumerate(quantities):
86
+ quantities_init[i] = ensure_numeric(quantities_init[i])
87
+ #print "HA_init", HA_init
88
+ q_time = num.zeros((time_step_count, points_num), num.float)
89
+ for time in range(time_step_count):
90
+ q_time[time,:] = quantities_init[i] #* time * 4
91
+
92
+ #Write C files
93
+ columns = 3 # long, lat , depth
94
+ file = base_name + mux_names[i]
95
+ #print "base_name file",file
96
+ f = open(file, 'wb')
97
+ files.append(file)
98
+ f.write(pack('i',points_num))
99
+ f.write(pack('i',time_step_count))
100
+ f.write(pack('f',time_step))
101
+
102
+ #write lat/long info
103
+ for lonlatdep in lonlatdeps:
104
+ for float in lonlatdep:
105
+ f.write(pack('f',float))
106
+
107
+ # Write quantity info
108
+ for time in range(time_step_count):
109
+ for point_i in range(points_num):
110
+ f.write(pack('f',q_time[time,point_i]))
111
+ #print " mux_names[i]", mux_names[i]
112
+ #print "f.write(pack('f',q_time[time,i]))", q_time[time,point_i]
113
+ f.close()
114
+ return base_name, files
115
+
116
+
117
+ def delete_mux(self, files):
118
+ for file in files:
119
+ try:
120
+ os.remove(file)
121
+ except:
122
+ pass
123
+
124
+ def write_mux2(self, lat_long_points, time_step_count, time_step,
125
+ first_tstep, last_tstep,
126
+ depth=None, ha=None, ua=None, va=None):
127
+ """
128
+ This will write 3 non-gridded mux files, for testing.
129
+ If no quantities are passed in,
130
+ na and va quantities will be the Easting values.
131
+ Depth and ua will be the Northing value.
132
+ """
133
+ #print "lat_long_points", lat_long_points
134
+ #print "time_step_count",time_step_count
135
+ #print "time_step",
136
+
137
+ #irrelevant header information
138
+ ig=ilon=ilat=0
139
+ mcolat=mcolon=centerlat=centerlon=offset=az=baz=id=0.0
140
+
141
+ points_num = len(lat_long_points)
142
+ latlondeps = []
143
+ quantities = ['HA','UA','VA']
144
+
145
+ mux_names = [WAVEHEIGHT_MUX2_LABEL,
146
+ EAST_VELOCITY_MUX2_LABEL,
147
+ NORTH_VELOCITY_MUX2_LABEL]
148
+
149
+ msg='first_tstep and last_step arrays must have same length as number of points'
150
+ assert len(first_tstep)==points_num,msg
151
+ assert len(last_tstep)==points_num,msg
152
+
153
+ if depth is not None:
154
+ depth=ensure_numeric(depth)
155
+ assert len(depth)==points_num
156
+ if ha is not None:
157
+ ha=ensure_numeric(ha)
158
+ assert ha.shape==(points_num,time_step_count)
159
+ if ua is not None:
160
+ ua=ensure_numeric(ua)
161
+ assert ua.shape==(points_num,time_step_count)
162
+ if va is not None:
163
+ va=ensure_numeric(va)
164
+ assert va.shape==(points_num,time_step_count)
165
+
166
+ quantities_init = [[],[],[]]
167
+ # urs binary is latitude fastest
168
+ for i,point in enumerate(lat_long_points):
169
+ lat = point[0]
170
+ lon = point[1]
171
+ _ , e, n = redfearn(lat, lon)
172
+ if depth is None:
173
+ this_depth = n
174
+ else:
175
+ this_depth = depth[i]
176
+ latlondeps.append([lat, lon, this_depth])
177
+
178
+ if ha is None:
179
+ this_ha = e
180
+ quantities_init[0].append(num.ones(time_step_count,num.float)*this_ha) # HA
181
+ else:
182
+ quantities_init[0].append(ha[i])
183
+ if ua is None:
184
+ this_ua = n
185
+ quantities_init[1].append(num.ones(time_step_count,num.float)*this_ua) # UA
186
+ else:
187
+ quantities_init[1].append(ua[i])
188
+ if va is None:
189
+ this_va = e
190
+ quantities_init[2].append(num.ones(time_step_count,num.float)*this_va) #
191
+ else:
192
+ quantities_init[2].append(-va[i]) # South is negative in MUX
193
+
194
+ file_handle, base_name = tempfile.mkstemp("write_mux2")
195
+ os.close(file_handle)
196
+ os.remove(base_name)
197
+
198
+ files = []
199
+ for i, q in enumerate(quantities):
200
+ q_time = num.zeros((time_step_count, points_num), num.float)
201
+ quantities_init[i] = ensure_numeric(quantities_init[i])
202
+ for time in range(time_step_count):
203
+ #print i, q, time, quantities_init[i][:,time]
204
+ q_time[time,:] = quantities_init[i][:,time]
205
+ #print i, q, time, q_time[time, :]
206
+
207
+ #Write C files
208
+ columns = 3 # long, lat , depth
209
+ file = base_name + mux_names[i]
210
+
211
+ #print 'base_name file', file
212
+ f = open(file, 'wb')
213
+ files.append(file)
214
+
215
+ f.write(pack('i',points_num))
216
+ #write mux 2 header
217
+ for latlondep in latlondeps:
218
+ f.write(pack('f',latlondep[0]))
219
+ f.write(pack('f',latlondep[1]))
220
+ f.write(pack('f',mcolat))
221
+ f.write(pack('f',mcolon))
222
+ f.write(pack('i',ig))
223
+ f.write(pack('i',ilon))
224
+ f.write(pack('i',ilat))
225
+ f.write(pack('f',latlondep[2]))
226
+ f.write(pack('f',centerlat))
227
+ f.write(pack('f',centerlon))
228
+ f.write(pack('f',offset))
229
+ f.write(pack('f',az))
230
+ f.write(pack('f',baz))
231
+ f.write(pack('f',time_step))
232
+ f.write(pack('i',time_step_count))
233
+ for j in range(4): # identifier
234
+ f.write(pack('f',id))
235
+
236
+ #first_tstep=1
237
+ #last_tstep=time_step_count
238
+ for i,latlondep in enumerate(latlondeps):
239
+ f.write(pack('i',first_tstep[i]))
240
+ for i,latlondep in enumerate(latlondeps):
241
+ f.write(pack('i',last_tstep[i]))
242
+
243
+ # Find when first station starts recording
244
+ min_tstep = min(first_tstep)
245
+ # Find when all stations have stopped recording
246
+ max_tstep = max(last_tstep)
247
+
248
+ #for time in range(time_step_count):
249
+ for time in range(min_tstep-1,max_tstep):
250
+ f.write(pack('f',time*time_step))
251
+ for point_i in range(points_num):
252
+ if time+1>=first_tstep[point_i] and time+1<=last_tstep[point_i]:
253
+ #print 'writing', time, point_i, q_time[time, point_i]
254
+ f.write(pack('f', q_time[time, point_i]))
255
+ f.close()
256
+
257
+ return base_name, files
258
+
259
+
260
+ def test_urs2sts_read_mux2_pyI(self):
261
+ """test_urs2sts_read_mux2_pyI(self):
262
+ Constant stage,momentum at each gauge
263
+ """
264
+ tide = 1
265
+ time_step_count = 3
266
+ time_step = 2
267
+ lat_long_points =[(-21.5,114.5),(-21,114.5),(-21.5,115), (-21.,115.)]
268
+ n=len(lat_long_points)
269
+ first_tstep=num.ones(n,num.int)
270
+ last_tstep=time_step_count*num.ones(n,num.int)
271
+ depth=20*num.ones(n,num.float)
272
+ ha=2*num.ones((n,time_step_count),num.float)
273
+ ua=5*num.ones((n,time_step_count),num.float)
274
+ va=-10*num.ones((n,time_step_count),num.float)
275
+ #-ve added to take into account mux file format where south is positive.
276
+ base_name, files = self.write_mux2(lat_long_points,
277
+ time_step_count, time_step,
278
+ first_tstep, last_tstep,
279
+ depth=depth,
280
+ ha=ha,
281
+ ua=ua,
282
+ va=va)
283
+
284
+ weights=num.ones(1, num.float)
285
+ #ensure that files are indeed mux2 files
286
+ times, latitudes, longitudes, elevation, stage, starttime = read_mux2_py([files[0]],weights)
287
+ ua_times, ua_latitudes, ua_longitudes, ua_elevation, xvelocity,starttime_ua=read_mux2_py([files[1]],weights)
288
+ msg='ha and ua have different gauge meta data'
289
+ assert num.allclose(times,ua_times) and num.allclose(latitudes,ua_latitudes) and num.allclose(longitudes,ua_longitudes) and num.allclose(elevation,ua_elevation) and num.allclose(starttime,starttime_ua), msg
290
+ va_times, va_latitudes, va_longitudes, va_elevation, yvelocity, starttime_va=read_mux2_py([files[2]],weights)
291
+ msg='ha and va have different gauge meta data'
292
+ assert num.allclose(times,va_times) and num.allclose(latitudes,va_latitudes) and num.allclose(longitudes,va_longitudes) and num.allclose(elevation,va_elevation) and num.allclose(starttime,starttime_va), msg
293
+
294
+ self.delete_mux(files)
295
+
296
+ msg='time array has incorrect length'
297
+ assert times.shape[0]==time_step_count,msg
298
+
299
+ msg = 'time array is incorrect'
300
+ #assert allclose(times,time_step*num.arange(1,time_step_count+1)),msg
301
+ assert num.allclose(times,time_step*num.arange(time_step_count)), msg
302
+
303
+ msg='Incorrect gauge positions returned'
304
+ for i,point in enumerate(lat_long_points):
305
+ assert num.allclose(latitudes[i],point[0]) and num.allclose(longitudes[i],point[1]),msg
306
+
307
+ msg='Incorrect gauge depths returned'
308
+ assert num.allclose(elevation,-depth),msg
309
+ msg='incorrect gauge height time series returned'
310
+ assert num.allclose(stage,ha)
311
+ msg='incorrect gauge ua time series returned'
312
+ assert num.allclose(xvelocity,ua)
313
+ msg='incorrect gauge va time series returned'
314
+ assert num.allclose(yvelocity, -va)
315
+
316
+ def test_urs2sts_read_mux2_pyII(self):
317
+ """Spatially varing stage
318
+ """
319
+ tide = 1
320
+ time_step_count = 3
321
+ time_step = 2
322
+ lat_long_points =[(-21.5,114.5),(-21,114.5),(-21.5,115), (-21.,115.)]
323
+ n=len(lat_long_points)
324
+ first_tstep=num.ones(n,num.int)
325
+ last_tstep=(time_step_count)*num.ones(n,num.int)
326
+ depth=20*num.ones(n,num.float)
327
+ ha=2*num.ones((n,time_step_count),num.float)
328
+ ha[0]=num.arange(0,time_step_count)+1
329
+ ha[1]=time_step_count-num.arange(1,time_step_count+1)
330
+ ha[1]=num.arange(time_step_count,2*time_step_count)
331
+ ha[2]=num.arange(2*time_step_count,3*time_step_count)
332
+ ha[3]=num.arange(3*time_step_count,4*time_step_count)
333
+ ua=5*num.ones((n,time_step_count),num.float)
334
+ va=-10*num.ones((n,time_step_count),num.float)
335
+ #-ve added to take into account mux file format where south is positive.
336
+ base_name, files = self.write_mux2(lat_long_points,
337
+ time_step_count, time_step,
338
+ first_tstep, last_tstep,
339
+ depth=depth,
340
+ ha=ha,
341
+ ua=ua,
342
+ va=va)
343
+
344
+ weights=num.ones(1, num.float)
345
+ #ensure that files are indeed mux2 files
346
+ times, latitudes, longitudes, elevation, stage,starttime=read_mux2_py([files[0]],weights)
347
+ ua_times, ua_latitudes, ua_longitudes, ua_elevation, xvelocity,starttime_ua=read_mux2_py([files[1]],weights)
348
+ msg='ha and ua have different gauge meta data'
349
+ assert num.allclose(times,ua_times) and num.allclose(latitudes,ua_latitudes) and num.allclose(longitudes,ua_longitudes) and num.allclose(elevation,ua_elevation) and num.allclose(starttime,starttime_ua), msg
350
+ va_times, va_latitudes, va_longitudes, va_elevation, yvelocity,starttime_va=read_mux2_py([files[2]],weights)
351
+ msg='ha and va have different gauge meta data'
352
+ assert num.allclose(times,va_times) and num.allclose(latitudes,va_latitudes) and num.allclose(longitudes,va_longitudes) and num.allclose(elevation,va_elevation) and num.allclose(starttime,starttime_va), msg
353
+
354
+
355
+ self.delete_mux(files)
356
+
357
+ msg='time array has incorrect length'
358
+ #assert times.shape[0]==time_step_count,msg
359
+ msg = 'time array is incorrect'
360
+ #assert allclose(times,time_step*num.arange(1,time_step_count+1)),msg
361
+ msg='Incorrect gauge positions returned'
362
+ for i,point in enumerate(lat_long_points):
363
+ assert num.allclose(latitudes[i],point[0]) and num.allclose(longitudes[i],point[1]),msg
364
+
365
+ msg='Incorrect gauge depths returned'
366
+ assert num.allclose(elevation, -depth),msg
367
+ msg='incorrect gauge height time series returned'
368
+ assert num.allclose(stage, ha)
369
+ msg='incorrect gauge ua time series returned'
370
+ assert num.allclose(xvelocity, ua)
371
+ msg='incorrect gauge va time series returned'
372
+ assert num.allclose(yvelocity, -va) # South is positive in MUX
373
+
374
+ def test_urs2sts_read_mux2_pyIII(self):
375
+ """Varying start and finish times
376
+ """
377
+ tide = 1
378
+ time_step_count = 3
379
+ time_step = 2
380
+ lat_long_points =[(-21.5,114.5),(-21,114.5),(-21.5,115), (-21.,115.)]
381
+ n=len(lat_long_points)
382
+ first_tstep=num.ones(n,num.int)
383
+ first_tstep[0]+=1
384
+ first_tstep[2]+=1
385
+ last_tstep=(time_step_count)*num.ones(n,num.int)
386
+ last_tstep[0]-=1
387
+
388
+ depth=20*num.ones(n,num.float)
389
+ ha=2*num.ones((n,time_step_count),num.float)
390
+ ha[0]=num.arange(0,time_step_count)
391
+ ha[1]=num.arange(time_step_count,2*time_step_count)
392
+ ha[2]=num.arange(2*time_step_count,3*time_step_count)
393
+ ha[3]=num.arange(3*time_step_count,4*time_step_count)
394
+ ua=5*num.ones((n,time_step_count),num.float)
395
+ va=-10*num.ones((n,time_step_count),num.float)
396
+ #-ve added to take into account mux file format where south is positive.
397
+ base_name, files = self.write_mux2(lat_long_points,
398
+ time_step_count, time_step,
399
+ first_tstep, last_tstep,
400
+ depth=depth,
401
+ ha=ha,
402
+ ua=ua,
403
+ va=va)
404
+
405
+ weights=num.ones(1, num.float)
406
+ #ensure that files are indeed mux2 files
407
+ times, latitudes, longitudes, elevation, stage, starttime=read_mux2_py([files[0]],weights)
408
+ ua_times, ua_latitudes, ua_longitudes, ua_elevation, xvelocity, starttime_ua=read_mux2_py([files[1]],weights)
409
+ msg='ha and ua have different gauge meta data'
410
+ assert num.allclose(times,ua_times) and num.allclose(latitudes,ua_latitudes) and num.allclose(longitudes,ua_longitudes) and num.allclose(elevation,ua_elevation) and num.allclose(starttime,starttime_ua), msg
411
+ va_times, va_latitudes, va_longitudes, va_elevation, yvelocity,starttime_va=read_mux2_py([files[2]],weights)
412
+ msg='ha and va have different gauge meta data'
413
+ assert num.allclose(times,va_times) and num.allclose(latitudes,va_latitudes) and num.allclose(longitudes,va_longitudes) and num.allclose(elevation,va_elevation) and num.allclose(starttime,starttime_va), msg
414
+
415
+ self.delete_mux(files)
416
+
417
+ msg='time array has incorrect length'
418
+ #assert times.shape[0]==time_step_count,msg
419
+ msg = 'time array is incorrect'
420
+ #assert allclose(times,time_step*num.arange(1,time_step_count+1)),msg
421
+ msg='Incorrect gauge positions returned'
422
+ for i,point in enumerate(lat_long_points):
423
+ assert num.allclose(latitudes[i],point[0]) and num.allclose(longitudes[i],point[1]),msg
424
+
425
+
426
+ # Set original data used to write mux file to be zero when gauges are
427
+ #not recdoring
428
+ ha[0][0]=0.0
429
+ ha[0][time_step_count-1]=0.0;
430
+ ha[2][0]=0.0;
431
+ ua[0][0]=0.0
432
+ ua[0][time_step_count-1]=0.0;
433
+ ua[2][0]=0.0;
434
+ va[0][0]=0.0
435
+ va[0][time_step_count-1]=0.0;
436
+ va[2][0]=0.0;
437
+ msg='Incorrect gauge depths returned'
438
+ assert num.allclose(elevation,-depth),msg
439
+ msg='incorrect gauge height time series returned'
440
+ assert num.allclose(stage,ha)
441
+ msg='incorrect gauge ua time series returned'
442
+ assert num.allclose(xvelocity,ua)
443
+ msg='incorrect gauge va time series returned'
444
+ assert num.allclose(yvelocity, -va) # South is positive in mux
445
+
446
+
447
+
448
+ def test_read_mux_platform_problem1(self):
449
+ """test_read_mux_platform_problem1
450
+
451
+ This is to test a situation where read_mux returned
452
+ wrong values Win32
453
+
454
+ This test passes on Windows but test_read_mux_platform_problem2
455
+ does not
456
+ """
457
+
458
+ from anuga.file.urs_ext import read_mux2
459
+
460
+ verbose = False
461
+
462
+ tide = 1.5
463
+ time_step_count = 10
464
+ time_step = 0.2
465
+ times_ref = num.arange(0, time_step_count*time_step, time_step)
466
+
467
+ lat_long_points = [(-21.5,114.5), (-21,114.5), (-21.5,115), (-21.,115.), (-22., 117.)]
468
+ n = len(lat_long_points)
469
+
470
+ # Create different timeseries starting and ending at different times
471
+ first_tstep=num.ones(n, num.int)
472
+ first_tstep[0]+=2 # Point 0 starts at 2
473
+ first_tstep[1]+=4 # Point 1 starts at 4
474
+ first_tstep[2]+=3 # Point 2 starts at 3
475
+
476
+ last_tstep=(time_step_count)*num.ones(n,num.int)
477
+ last_tstep[0]-=1 # Point 0 ends 1 step early
478
+ last_tstep[1]-=2 # Point 1 ends 2 steps early
479
+ last_tstep[4]-=3 # Point 4 ends 3 steps early
480
+
481
+ # Create varying elevation data (positive values for seafloor)
482
+ gauge_depth=20*num.ones(n,num.float)
483
+ for i in range(n):
484
+ gauge_depth[i] += i**2
485
+
486
+ # Create data to be written to first mux file
487
+ ha0=2*num.ones((n,time_step_count),num.float)
488
+ ha0[0]=num.arange(0,time_step_count)
489
+ ha0[1]=num.arange(time_step_count,2*time_step_count)
490
+ ha0[2]=num.arange(2*time_step_count,3*time_step_count)
491
+ ha0[3]=num.arange(3*time_step_count,4*time_step_count)
492
+ ua0=5*num.ones((n,time_step_count),num.float)
493
+ va0=-10*num.ones((n,time_step_count),num.float)
494
+
495
+ # Ensure data used to write mux file to be zero when gauges are
496
+ # not recording
497
+ for i in range(n):
498
+ # For each point
499
+ for j in range(0, first_tstep[i]-1) + range(last_tstep[i], time_step_count):
500
+ # For timesteps before and after recording range
501
+ ha0[i][j] = ua0[i][j] = va0[i][j] = 0.0
502
+
503
+ # Write first mux file to be combined by urs2sts
504
+ base_nameI, filesI = self.write_mux2(lat_long_points,
505
+ time_step_count, time_step,
506
+ first_tstep, last_tstep,
507
+ depth=gauge_depth,
508
+ ha=ha0,
509
+ ua=ua0,
510
+ va=va0)
511
+
512
+ # Create ordering file
513
+ permutation = ensure_numeric([4,0,2])
514
+
515
+ _, ordering_filename = tempfile.mkstemp('')
516
+ order_fid = open(ordering_filename, 'w')
517
+ order_fid.write('index, longitude, latitude\n')
518
+ for index in permutation:
519
+ order_fid.write('%d, %f, %f\n' %(index,
520
+ lat_long_points[index][1],
521
+ lat_long_points[index][0]))
522
+ order_fid.close()
523
+
524
+
525
+
526
+ # -------------------------------------
527
+ # Now read files back and check values
528
+ weights = ensure_numeric([1.0])
529
+
530
+ # For each quantity read the associated list of source mux2 file with
531
+ # extention associated with that quantity
532
+ file_params=-1*num.ones(3,num.float) #[nsta,dt,nt]
533
+ OFFSET = 5
534
+
535
+ for j, file in enumerate(filesI):
536
+ data = read_mux2(1, [file], weights, file_params, permutation, verbose)
537
+
538
+ number_of_selected_stations = data.shape[0]
539
+
540
+ # Index where data ends and parameters begin
541
+ parameters_index = data.shape[1]-OFFSET
542
+
543
+ for i in range(number_of_selected_stations):
544
+ if j == 0: assert num.allclose(data[i][:parameters_index], ha0[permutation[i], :])
545
+ if j == 1: assert num.allclose(data[i][:parameters_index], ua0[permutation[i], :])
546
+ if j == 2: assert num.allclose(data[i][:parameters_index], -va0[permutation[i], :])
547
+
548
+ self.delete_mux(filesI)
549
+
550
+
551
+
552
+
553
+ def test_read_mux_platform_problem2(self):
554
+ """test_read_mux_platform_problem2
555
+
556
+ This is to test a situation where read_mux returned
557
+ wrong values Win32
558
+
559
+ This test does not pass on Windows but test_read_mux_platform_problem1
560
+ does
561
+ """
562
+
563
+ from anuga.file.urs_ext import read_mux2
564
+
565
+ from anuga.config import single_precision as epsilon
566
+
567
+ verbose = False
568
+
569
+ tide = 1.5
570
+ time_step_count = 10
571
+ time_step = 0.2
572
+
573
+ times_ref = num.arange(0, time_step_count*time_step, time_step)
574
+
575
+ lat_long_points = [(-21.5,114.5), (-21,114.5), (-21.5,115),
576
+ (-21.,115.), (-22., 117.)]
577
+ n = len(lat_long_points)
578
+
579
+ # Create different timeseries starting and ending at different times
580
+ first_tstep=num.ones(n,num.int)
581
+ first_tstep[0]+=2 # Point 0 starts at 2
582
+ first_tstep[1]+=4 # Point 1 starts at 4
583
+ first_tstep[2]+=3 # Point 2 starts at 3
584
+
585
+ last_tstep=(time_step_count)*num.ones(n,num.int)
586
+ last_tstep[0]-=1 # Point 0 ends 1 step early
587
+ last_tstep[1]-=2 # Point 1 ends 2 steps early
588
+ last_tstep[4]-=3 # Point 4 ends 3 steps early
589
+
590
+ # Create varying elevation data (positive values for seafloor)
591
+ gauge_depth=20*num.ones(n,num.float)
592
+ for i in range(n):
593
+ gauge_depth[i] += i**2
594
+
595
+ # Create data to be written to second mux file
596
+ ha1=num.ones((n,time_step_count),num.float)
597
+ ha1[0]=num.sin(times_ref)
598
+ ha1[1]=2*num.sin(times_ref - 3)
599
+ ha1[2]=5*num.sin(4*times_ref)
600
+ ha1[3]=num.sin(times_ref)
601
+ ha1[4]=num.sin(2*times_ref-0.7)
602
+
603
+ ua1=num.zeros((n,time_step_count),num.float)
604
+ ua1[0]=3*num.cos(times_ref)
605
+ ua1[1]=2*num.sin(times_ref-0.7)
606
+ ua1[2]=num.arange(3*time_step_count,4*time_step_count)
607
+ ua1[4]=2*num.ones(time_step_count)
608
+
609
+ va1=num.zeros((n,time_step_count),num.float)
610
+ va1[0]=2*num.cos(times_ref-0.87)
611
+ va1[1]=3*num.ones(time_step_count)
612
+ va1[3]=2*num.sin(times_ref-0.71)
613
+
614
+ # Ensure data used to write mux file to be zero when gauges are
615
+ # not recording
616
+ for i in range(n):
617
+ # For each point
618
+ for j in range(0, first_tstep[i]-1) + range(last_tstep[i], time_step_count):
619
+ # For timesteps before and after recording range
620
+ ha1[i][j] = ua1[i][j] = va1[i][j] = 0.0
621
+
622
+
623
+ #print 'Second station to be written to MUX'
624
+ #print 'ha', ha1[0,:]
625
+ #print 'ua', ua1[0,:]
626
+ #print 'va', va1[0,:]
627
+
628
+ # Write second mux file to be combined by urs2sts
629
+ base_nameII, filesII = self.write_mux2(lat_long_points,
630
+ time_step_count, time_step,
631
+ first_tstep, last_tstep,
632
+ depth=gauge_depth,
633
+ ha=ha1,
634
+ ua=ua1,
635
+ va=va1)
636
+
637
+
638
+
639
+
640
+ # Read mux file back and verify it's correcness
641
+
642
+ ####################################################
643
+ # FIXME (Ole): This is where the test should
644
+ # verify that the MUX files are correct.
645
+
646
+ #JJ: It appears as though
647
+ #that certain quantities are not being stored with enough precision
648
+ #inn muxfile or more likely that they are being cast into a
649
+ #lower precision when read in using read_mux2 Time step and q_time
650
+ # are equal but only to approx 1e-7
651
+ ####################################################
652
+
653
+ #define information as it should be stored in mus2 files
654
+ points_num=len(lat_long_points)
655
+ depth=gauge_depth
656
+ ha=ha1
657
+ ua=ua1
658
+ va=va1
659
+
660
+ quantities = ['HA','UA','VA']
661
+ mux_names = [WAVEHEIGHT_MUX2_LABEL,
662
+ EAST_VELOCITY_MUX2_LABEL,
663
+ NORTH_VELOCITY_MUX2_LABEL]
664
+ quantities_init = [[],[],[]]
665
+ latlondeps = []
666
+ #irrelevant header information
667
+ ig=ilon=ilat=0
668
+ mcolat=mcolon=centerlat=centerlon=offset=az=baz=id=0.0
669
+ # urs binary is latitude fastest
670
+ for i,point in enumerate(lat_long_points):
671
+ lat = point[0]
672
+ lon = point[1]
673
+ _ , e, n = redfearn(lat, lon)
674
+ if depth is None:
675
+ this_depth = n
676
+ else:
677
+ this_depth = depth[i]
678
+ latlondeps.append([lat, lon, this_depth])
679
+
680
+ if ha is None:
681
+ this_ha = e
682
+ quantities_init[0].append(num.ones(time_step_count,num.float)*this_ha) # HA
683
+ else:
684
+ quantities_init[0].append(ha[i])
685
+ if ua is None:
686
+ this_ua = n
687
+ quantities_init[1].append(num.ones(time_step_count,num.float)*this_ua) # UA
688
+ else:
689
+ quantities_init[1].append(ua[i])
690
+ if va is None:
691
+ this_va = e
692
+ quantities_init[2].append(num.ones(time_step_count,num.float)*this_va) #
693
+ else:
694
+ quantities_init[2].append(va[i])
695
+
696
+ for i, q in enumerate(quantities):
697
+ #print
698
+ #print i, q
699
+
700
+ q_time = num.zeros((time_step_count, points_num), num.float)
701
+ quantities_init[i] = ensure_numeric(quantities_init[i])
702
+ for time in range(time_step_count):
703
+ #print i, q, time, quantities_init[i][:,time]
704
+ q_time[time,:] = quantities_init[i][:,time]
705
+ #print i, q, time, q_time[time, :]
706
+
707
+
708
+ filename = base_nameII + mux_names[i]
709
+ f = open(filename, 'rb')
710
+ assert abs(points_num-unpack('i',f.read(4))[0])<epsilon
711
+ #write mux 2 header
712
+ for latlondep in latlondeps:
713
+ assert abs(latlondep[0]-unpack('f',f.read(4))[0])<epsilon
714
+ assert abs(latlondep[1]-unpack('f',f.read(4))[0])<epsilon
715
+ assert abs(mcolat-unpack('f',f.read(4))[0])<epsilon
716
+ assert abs(mcolon-unpack('f',f.read(4))[0])<epsilon
717
+ assert abs(ig-unpack('i',f.read(4))[0])<epsilon
718
+ assert abs(ilon-unpack('i',f.read(4))[0])<epsilon
719
+ assert abs(ilat-unpack('i',f.read(4))[0])<epsilon
720
+ assert abs(latlondep[2]-unpack('f',f.read(4))[0])<epsilon
721
+ assert abs(centerlat-unpack('f',f.read(4))[0])<epsilon
722
+ assert abs(centerlon-unpack('f',f.read(4))[0])<epsilon
723
+ assert abs(offset-unpack('f',f.read(4))[0])<epsilon
724
+ assert abs(az-unpack('f',f.read(4))[0])<epsilon
725
+ assert abs(baz-unpack('f',f.read(4))[0])<epsilon
726
+
727
+ x = unpack('f', f.read(4))[0]
728
+ #print time_step
729
+ #print x
730
+ assert abs(time_step-x)<epsilon
731
+ assert abs(time_step_count-unpack('i',f.read(4))[0])<epsilon
732
+ for j in range(4): # identifier
733
+ assert abs(id-unpack('i',f.read(4))[0])<epsilon
734
+
735
+ #first_tstep=1
736
+ #last_tstep=time_step_count
737
+ for i,latlondep in enumerate(latlondeps):
738
+ assert abs(first_tstep[i]-unpack('i',f.read(4))[0])<epsilon
739
+ for i,latlondep in enumerate(latlondeps):
740
+ assert abs(last_tstep[i]-unpack('i',f.read(4))[0])<epsilon
741
+
742
+ # Find when first station starts recording
743
+ min_tstep = min(first_tstep)
744
+ # Find when all stations have stopped recording
745
+ max_tstep = max(last_tstep)
746
+
747
+ #for time in range(time_step_count):
748
+ for time in range(min_tstep-1,max_tstep):
749
+ assert abs(time*time_step-unpack('f',f.read(4))[0])<epsilon
750
+ for point_i in range(points_num):
751
+ if time+1>=first_tstep[point_i] and time+1<=last_tstep[point_i]:
752
+ x = unpack('f',f.read(4))[0]
753
+ #print time, x, q_time[time, point_i]
754
+ if q == 'VA': x = -x # South is positive in MUX
755
+ assert abs(q_time[time, point_i]-x)<epsilon
756
+
757
+ f.close()
758
+
759
+ # Create ordering file
760
+ permutation = ensure_numeric([4,0,2])
761
+
762
+ # _, ordering_filename = tempfile.mkstemp('')
763
+ # order_fid = open(ordering_filename, 'w')
764
+ # order_fid.write('index, longitude, latitude\n')
765
+ # for index in permutation:
766
+ # order_fid.write('%d, %f, %f\n' %(index,
767
+ # lat_long_points[index][1],
768
+ # lat_long_points[index][0]))
769
+ # order_fid.close()
770
+
771
+ # -------------------------------------
772
+ # Now read files back and check values
773
+ weights = ensure_numeric([1.0])
774
+
775
+ # For each quantity read the associated list of source mux2 file with
776
+ # extention associated with that quantity
777
+ file_params=-1*num.ones(3,num.float) # [nsta,dt,nt]
778
+ OFFSET = 5
779
+
780
+ for j, file in enumerate(filesII):
781
+ # Read stage, u, v enumerated as j
782
+ #print 'Reading', j, file
783
+ data = read_mux2(1, [file], weights, file_params, permutation, verbose)
784
+
785
+ #print 'Data received by Python'
786
+ #print data[1][8]
787
+ number_of_selected_stations = data.shape[0]
788
+
789
+ # Index where data ends and parameters begin
790
+ parameters_index = data.shape[1]-OFFSET
791
+
792
+ quantity=num.zeros((number_of_selected_stations, parameters_index), num.float)
793
+
794
+
795
+ for i in range(number_of_selected_stations):
796
+
797
+ #print i, parameters_index
798
+ #print quantity[i][:]
799
+ if j == 0: assert num.allclose(data[i][:parameters_index], ha1[permutation[i], :])
800
+ if j == 1: assert num.allclose(data[i][:parameters_index], ua1[permutation[i], :])
801
+ if j == 2:
802
+ # FIXME (Ole): This is where the output is wrong on Win32
803
+
804
+ #print
805
+ #print j, i
806
+ #print 'Input'
807
+ #print 'u', ua1[permutation[i], 8]
808
+ #print 'v', va1[permutation[i], 8]
809
+
810
+ #print 'Output'
811
+ #print 'v ', data[i][:parameters_index][8]
812
+
813
+ # South is positive in MUX
814
+ #print "data[i][:parameters_index]", data[i][:parameters_index]
815
+ #print "-va1[permutation[i], :]", -va1[permutation[i], :]
816
+ assert num.allclose(data[i][:parameters_index], -va1[permutation[i], :])
817
+
818
+ self.delete_mux(filesII)
819
+
820
+ def test_read_mux_platform_problem3(self):
821
+
822
+ # This is to test a situation where read_mux returned
823
+ # wrong values Win32
824
+
825
+
826
+ from anuga.file.urs_ext import read_mux2
827
+
828
+ from anuga.config import single_precision as epsilon
829
+
830
+ verbose = False
831
+
832
+ tide = 1.5
833
+ time_step_count = 10
834
+ time_step = 0.02
835
+
836
+ '''
837
+ Win results
838
+ time_step = 0.2000001
839
+ This is OK
840
+ '''
841
+
842
+ '''
843
+ Win results
844
+ time_step = 0.20000001
845
+
846
+ ======================================================================
847
+ ERROR: test_read_mux_platform_problem3 (__main__.Test_Data_Manager)
848
+ ----------------------------------------------------------------------
849
+ Traceback (most recent call last):
850
+ File "test_data_manager.py", line 6718, in test_read_mux_platform_problem3
851
+ ha1[0]=num.sin(times_ref)
852
+ ValueError: matrices are not aligned for copy
853
+
854
+ '''
855
+
856
+ '''
857
+ Win results
858
+ time_step = 0.200000001
859
+ FAIL
860
+ assert num.allclose(data[i][:parameters_index],
861
+ -va1[permutation[i], :])
862
+ '''
863
+ times_ref = num.arange(0, time_step_count*time_step, time_step)
864
+ #print "times_ref", times_ref
865
+
866
+ lat_long_points = [(-21.5,114.5), (-21,114.5), (-21.5,115),
867
+ (-21.,115.), (-22., 117.)]
868
+ stations = len(lat_long_points)
869
+
870
+ # Create different timeseries starting and ending at different times
871
+ first_tstep=num.ones(stations, num.int)
872
+ first_tstep[0]+=2 # Point 0 starts at 2
873
+ first_tstep[1]+=4 # Point 1 starts at 4
874
+ first_tstep[2]+=3 # Point 2 starts at 3
875
+
876
+ last_tstep=(time_step_count)*num.ones(stations, num.int)
877
+ last_tstep[0]-=1 # Point 0 ends 1 step early
878
+ last_tstep[1]-=2 # Point 1 ends 2 steps early
879
+ last_tstep[4]-=3 # Point 4 ends 3 steps early
880
+
881
+ # Create varying elevation data (positive values for seafloor)
882
+ gauge_depth=20*num.ones(stations, num.float)
883
+ for i in range(stations):
884
+ gauge_depth[i] += i**2
885
+
886
+ # Create data to be written to second mux file
887
+ ha1=num.ones((stations,time_step_count), num.float)
888
+ ha1[0]=num.sin(times_ref)
889
+ ha1[1]=2*num.sin(times_ref - 3)
890
+ ha1[2]=5*num.sin(4*times_ref)
891
+ ha1[3]=num.sin(times_ref)
892
+ ha1[4]=num.sin(2*times_ref-0.7)
893
+
894
+ ua1=num.zeros((stations,time_step_count),num.float)
895
+ ua1[0]=3*num.cos(times_ref)
896
+ ua1[1]=2*num.sin(times_ref-0.7)
897
+ ua1[2]=num.arange(3*time_step_count,4*time_step_count)
898
+ ua1[4]=2*num.ones(time_step_count)
899
+
900
+ va1=num.zeros((stations,time_step_count),num.float)
901
+ va1[0]=2*num.cos(times_ref-0.87)
902
+ va1[1]=3*num.ones(time_step_count)
903
+ va1[3]=2*num.sin(times_ref-0.71)
904
+ #print "va1[0]", va1[0] # The 8th element is what will go bad.
905
+ # Ensure data used to write mux file to be zero when gauges are
906
+ # not recording
907
+ for i in range(stations):
908
+ # For each point
909
+ for j in range(0, first_tstep[i]-1) + range(last_tstep[i],
910
+ time_step_count):
911
+ # For timesteps before and after recording range
912
+ ha1[i][j] = ua1[i][j] = va1[i][j] = 0.0
913
+
914
+
915
+ #print 'Second station to be written to MUX'
916
+ #print 'ha', ha1[0,:]
917
+ #print 'ua', ua1[0,:]
918
+ #print 'va', va1[0,:]
919
+
920
+ # Write second mux file to be combined by urs2sts
921
+ base_nameII, filesII = self.write_mux2(lat_long_points,
922
+ time_step_count, time_step,
923
+ first_tstep, last_tstep,
924
+ depth=gauge_depth,
925
+ ha=ha1,
926
+ ua=ua1,
927
+ va=va1)
928
+ #print "filesII", filesII
929
+
930
+
931
+
932
+
933
+ # Read mux file back and verify it's correcness
934
+
935
+ ####################################################
936
+ # FIXME (Ole): This is where the test should
937
+ # verify that the MUX files are correct.
938
+
939
+ #JJ: It appears as though
940
+ #that certain quantities are not being stored with enough precision
941
+ #inn muxfile or more likely that they are being cast into a
942
+ #lower precision when read in using read_mux2 Time step and q_time
943
+ # are equal but only to approx 1e-7
944
+ ####################################################
945
+
946
+ #define information as it should be stored in mus2 files
947
+ points_num=len(lat_long_points)
948
+ depth=gauge_depth
949
+ ha=ha1
950
+ ua=ua1
951
+ va=va1
952
+
953
+ quantities = ['HA','UA','VA']
954
+ mux_names = [WAVEHEIGHT_MUX2_LABEL,
955
+ EAST_VELOCITY_MUX2_LABEL,
956
+ NORTH_VELOCITY_MUX2_LABEL]
957
+ quantities_init = [[],[],[]]
958
+ latlondeps = []
959
+ #irrelevant header information
960
+ ig=ilon=ilat=0
961
+ mcolat=mcolon=centerlat=centerlon=offset=az=baz=id=0.0
962
+ # urs binary is latitude fastest
963
+ for i,point in enumerate(lat_long_points):
964
+ lat = point[0]
965
+ lon = point[1]
966
+ _ , e, n = redfearn(lat, lon)
967
+ if depth is None:
968
+ this_depth = n
969
+ else:
970
+ this_depth = depth[i]
971
+ latlondeps.append([lat, lon, this_depth])
972
+
973
+ if ha is None:
974
+ this_ha = e
975
+ quantities_init[0].append(num.ones(time_step_count,
976
+ num.float)*this_ha) # HA
977
+ else:
978
+ quantities_init[0].append(ha[i])
979
+ if ua is None:
980
+ this_ua = n
981
+ quantities_init[1].append(num.ones(time_step_count,
982
+ num.float)*this_ua) # UA
983
+ else:
984
+ quantities_init[1].append(ua[i])
985
+ if va is None:
986
+ this_va = e
987
+ quantities_init[2].append(num.ones(time_step_count,
988
+ num.float)*this_va) #
989
+ else:
990
+ quantities_init[2].append(va[i])
991
+
992
+ for i, q in enumerate(quantities):
993
+ #print
994
+ #print i, q
995
+
996
+ q_time = num.zeros((time_step_count, points_num), num.float)
997
+ quantities_init[i] = ensure_numeric(quantities_init[i])
998
+ for time in range(time_step_count):
999
+ #print i, q, time, quantities_init[i][:,time]
1000
+ q_time[time,:] = quantities_init[i][:,time]
1001
+ #print i, q, time, q_time[time, :]
1002
+
1003
+
1004
+ filename = base_nameII + mux_names[i]
1005
+ f = open(filename, 'rb')
1006
+ assert abs(points_num-unpack('i',f.read(4))[0])<epsilon
1007
+ #write mux 2 header
1008
+ for latlondep in latlondeps:
1009
+ assert abs(latlondep[0]-unpack('f',f.read(4))[0])<epsilon
1010
+ assert abs(latlondep[1]-unpack('f',f.read(4))[0])<epsilon
1011
+ assert abs(mcolat-unpack('f',f.read(4))[0])<epsilon
1012
+ assert abs(mcolon-unpack('f',f.read(4))[0])<epsilon
1013
+ assert abs(ig-unpack('i',f.read(4))[0])<epsilon
1014
+ assert abs(ilon-unpack('i',f.read(4))[0])<epsilon
1015
+ assert abs(ilat-unpack('i',f.read(4))[0])<epsilon
1016
+ assert abs(latlondep[2]-unpack('f',f.read(4))[0])<epsilon
1017
+ assert abs(centerlat-unpack('f',f.read(4))[0])<epsilon
1018
+ assert abs(centerlon-unpack('f',f.read(4))[0])<epsilon
1019
+ assert abs(offset-unpack('f',f.read(4))[0])<epsilon
1020
+ assert abs(az-unpack('f',f.read(4))[0])<epsilon
1021
+ assert abs(baz-unpack('f',f.read(4))[0])<epsilon
1022
+
1023
+ x = unpack('f', f.read(4))[0]
1024
+ #print time_step
1025
+ #print x
1026
+ assert abs(time_step-x)<epsilon
1027
+ assert abs(time_step_count-unpack('i',f.read(4))[0])<epsilon
1028
+ for j in range(4): # identifier
1029
+ assert abs(id-unpack('i',f.read(4))[0])<epsilon
1030
+
1031
+ #first_tstep=1
1032
+ #last_tstep=time_step_count
1033
+ for i,latlondep in enumerate(latlondeps):
1034
+ assert abs(first_tstep[i]-unpack('i',f.read(4))[0])<epsilon
1035
+ for i,latlondep in enumerate(latlondeps):
1036
+ assert abs(last_tstep[i]-unpack('i',f.read(4))[0])<epsilon
1037
+
1038
+ # Find when first station starts recording
1039
+ min_tstep = min(first_tstep)
1040
+ # Find when all stations have stopped recording
1041
+ max_tstep = max(last_tstep)
1042
+
1043
+ #for time in range(time_step_count):
1044
+ for time in range(min_tstep-1,max_tstep):
1045
+ assert abs(time*time_step-unpack('f',f.read(4))[0])<epsilon
1046
+ for point_i in range(points_num):
1047
+ if time+1>=first_tstep[point_i] and time+1<=last_tstep[point_i]:
1048
+ x = unpack('f',f.read(4))[0]
1049
+ #print time, x, q_time[time, point_i]
1050
+ if q == 'VA': x = -x # South is positive in MUX
1051
+ #print q+" q_time[%d, %d] = %f" %(time, point_i,
1052
+ #q_time[time, point_i])
1053
+ assert abs(q_time[time, point_i]-x)<epsilon
1054
+
1055
+ f.close()
1056
+
1057
+ permutation = ensure_numeric([4,0,2])
1058
+
1059
+ # Create ordering file
1060
+ # _, ordering_filename = tempfile.mkstemp('')
1061
+ # order_fid = open(ordering_filename, 'w')
1062
+ # order_fid.write('index, longitude, latitude\n')
1063
+ # for index in permutation:
1064
+ # order_fid.write('%d, %f, %f\n' %(index,
1065
+ # lat_long_points[index][1],
1066
+ # lat_long_points[index][0]))
1067
+ # order_fid.close()
1068
+
1069
+ # -------------------------------------
1070
+ # Now read files back and check values
1071
+ weights = ensure_numeric([1.0])
1072
+
1073
+ # For each quantity read the associated list of source mux2 file with
1074
+ # extention associated with that quantity
1075
+ file_params=-1*num.ones(3,num.float) # [nsta,dt,nt]
1076
+ OFFSET = 5
1077
+
1078
+ for j, file in enumerate(filesII):
1079
+ # Read stage, u, v enumerated as j
1080
+ #print 'Reading', j, file
1081
+ #print "file", file
1082
+ data = read_mux2(1, [file], weights, file_params,
1083
+ permutation, verbose)
1084
+ #print str(j) + "data", data
1085
+
1086
+ #print 'Data received by Python'
1087
+ #print data[1][8]
1088
+ number_of_selected_stations = data.shape[0]
1089
+ #print "number_of_selected_stations", number_of_selected_stations
1090
+ #print "stations", stations
1091
+
1092
+ # Index where data ends and parameters begin
1093
+ parameters_index = data.shape[1]-OFFSET
1094
+
1095
+ for i in range(number_of_selected_stations):
1096
+
1097
+ #print i, parameters_index
1098
+ if j == 0:
1099
+ assert num.allclose(data[i][:parameters_index],
1100
+ ha1[permutation[i], :])
1101
+
1102
+ if j == 1: assert num.allclose(data[i][:parameters_index], ua1[permutation[i], :])
1103
+ if j == 2:
1104
+ assert num.allclose(data[i][:parameters_index], -va1[permutation[i], :])
1105
+
1106
+ self.delete_mux(filesII)
1107
+
1108
+
1109
+
1110
+ def test_urs2sts_nonstandard_projection_reverse(self):
1111
+ """
1112
+ Test that a point not in the specified zone can occur first
1113
+ """
1114
+ tide=0
1115
+ time_step_count = 3
1116
+ time_step = 2
1117
+ lat_long_points =[(-21.,113.5),(-21.,114.5),(-21.,114.), (-21.,115.)]
1118
+ n=len(lat_long_points)
1119
+ first_tstep=num.ones(n,num.int)
1120
+ first_tstep[0]+=1
1121
+ first_tstep[2]+=1
1122
+ last_tstep=(time_step_count)*num.ones(n,num.int)
1123
+ last_tstep[0]-=1
1124
+
1125
+ gauge_depth=20*num.ones(n,num.float)
1126
+ ha=2*num.ones((n,time_step_count),num.float)
1127
+ ha[0]=num.arange(0,time_step_count)
1128
+ ha[1]=num.arange(time_step_count,2*time_step_count)
1129
+ ha[2]=num.arange(2*time_step_count,3*time_step_count)
1130
+ ha[3]=num.arange(3*time_step_count,4*time_step_count)
1131
+ ua=5*num.ones((n,time_step_count),num.float)
1132
+ va=-10*num.ones((n,time_step_count),num.float)
1133
+
1134
+ base_name, files = self.write_mux2(lat_long_points,
1135
+ time_step_count, time_step,
1136
+ first_tstep, last_tstep,
1137
+ depth=gauge_depth,
1138
+ ha=ha,
1139
+ ua=ua,
1140
+ va=va)
1141
+
1142
+ urs2sts(base_name,
1143
+ basename_out=base_name,
1144
+ zone=50,
1145
+ mean_stage=tide,verbose=False)
1146
+
1147
+ # now I want to check the sts file ...
1148
+ sts_file = base_name + '.sts'
1149
+
1150
+ #Let's interigate the sww file
1151
+ # Note, the sww info is not gridded. It is point data.
1152
+ fid = NetCDFFile(sts_file)
1153
+
1154
+ # Make x and y absolute
1155
+ x = fid.variables['x'][:]
1156
+ y = fid.variables['y'][:]
1157
+
1158
+ geo_reference = Geo_reference(NetCDFObject=fid)
1159
+ points = geo_reference.get_absolute(map(None, x, y))
1160
+ points = ensure_numeric(points)
1161
+
1162
+ x = points[:,0]
1163
+ y = points[:,1]
1164
+
1165
+ # Check that all coordinate are correctly represented
1166
+ # Using the non standard projection (50)
1167
+ for i in range(4):
1168
+ zone, e, n = redfearn(lat_long_points[i][0], lat_long_points[i][1],
1169
+ zone=50)
1170
+ assert num.allclose([x[i],y[i]], [e,n])
1171
+ assert zone==geo_reference.zone
1172
+
1173
+ self.delete_mux(files)
1174
+
1175
+
1176
+ def test_urs2stsII(self):
1177
+ """
1178
+ Test multiple sources
1179
+ """
1180
+ tide=0
1181
+ time_step_count = 3
1182
+ time_step = 2
1183
+ lat_long_points =[(-21.5,114.5),(-21,114.5),(-21.5,115), (-21.,115.)]
1184
+ n=len(lat_long_points)
1185
+ first_tstep=num.ones(n,num.int)
1186
+ first_tstep[0]+=1
1187
+ first_tstep[2]+=1
1188
+ last_tstep=(time_step_count)*num.ones(n,num.int)
1189
+ last_tstep[0]-=1
1190
+
1191
+ gauge_depth=20*num.ones(n,num.float)
1192
+ ha=2*num.ones((n,time_step_count),num.float)
1193
+ ha[0]=num.arange(0,time_step_count)
1194
+ ha[1]=num.arange(time_step_count,2*time_step_count)
1195
+ ha[2]=num.arange(2*time_step_count,3*time_step_count)
1196
+ ha[3]=num.arange(3*time_step_count,4*time_step_count)
1197
+ ua=5*num.ones((n,time_step_count),num.float)
1198
+ va=-10*num.ones((n,time_step_count),num.float)
1199
+
1200
+ # Create two identical mux files to be combined by urs2sts
1201
+ base_nameI, filesI = self.write_mux2(lat_long_points,
1202
+ time_step_count, time_step,
1203
+ first_tstep, last_tstep,
1204
+ depth=gauge_depth,
1205
+ ha=ha,
1206
+ ua=ua,
1207
+ va=va)
1208
+
1209
+ base_nameII, filesII = self.write_mux2(lat_long_points,
1210
+ time_step_count, time_step,
1211
+ first_tstep, last_tstep,
1212
+ depth=gauge_depth,
1213
+ ha=ha,
1214
+ ua=ua,
1215
+ va=va)
1216
+
1217
+ # Call urs2sts with multiple mux files
1218
+ urs2sts([base_nameI, base_nameII],
1219
+ basename_out=base_nameI,
1220
+ weights=[1.0, 1.0],
1221
+ mean_stage=tide,
1222
+ verbose=False)
1223
+
1224
+ # now I want to check the sts file ...
1225
+ sts_file = base_nameI + '.sts'
1226
+
1227
+ #Let's interrogate the sts file
1228
+ # Note, the sts info is not gridded. It is point data.
1229
+ fid = NetCDFFile(sts_file)
1230
+
1231
+ # Make x and y absolute
1232
+ x = fid.variables['x'][:]
1233
+ y = fid.variables['y'][:]
1234
+
1235
+ geo_reference = Geo_reference(NetCDFObject=fid)
1236
+ points = geo_reference.get_absolute(map(None, x, y))
1237
+ points = ensure_numeric(points)
1238
+
1239
+ x = points[:,0]
1240
+ y = points[:,1]
1241
+
1242
+ #Check that first coordinate is correctly represented
1243
+ #Work out the UTM coordinates for first point
1244
+ zone, e, n = redfearn(lat_long_points[0][0], lat_long_points[0][1])
1245
+ assert num.allclose([x[0],y[0]], [e,n])
1246
+
1247
+ #Check the time vector
1248
+ times = fid.variables['time'][:]
1249
+
1250
+ times_actual = []
1251
+ for i in range(time_step_count):
1252
+ times_actual.append(time_step * i)
1253
+
1254
+ assert num.allclose(ensure_numeric(times),
1255
+ ensure_numeric(times_actual))
1256
+
1257
+ #Check first value
1258
+ stage = fid.variables['stage'][:]
1259
+ xmomentum = fid.variables['xmomentum'][:]
1260
+ ymomentum = fid.variables['ymomentum'][:]
1261
+ elevation = fid.variables['elevation'][:]
1262
+
1263
+ # Set original data used to write mux file to be zero when gauges are
1264
+ # not recdoring
1265
+
1266
+ ha[0][0]=0.0
1267
+ ha[0][time_step_count-1]=0.0
1268
+ ha[2][0]=0.0
1269
+ ua[0][0]=0.0
1270
+ ua[0][time_step_count-1]=0.0
1271
+ ua[2][0]=0.0
1272
+ va[0][0]=0.0
1273
+ va[0][time_step_count-1]=0.0
1274
+ va[2][0]=0.0;
1275
+
1276
+ # The stage stored in the .sts file should be the sum of the stage
1277
+ # in the two mux2 files because both have weights = 1. In this case
1278
+ # the mux2 files are the same so stage == 2.0 * ha
1279
+ #print 2.0*num.transpose(ha) - stage
1280
+ assert num.allclose(2.0*num.transpose(ha), stage) #Meters
1281
+
1282
+ #Check the momentums - ua
1283
+ #momentum = velocity*(stage-elevation)
1284
+ # elevation = - depth
1285
+ #momentum = velocity_ua *(stage+depth)
1286
+
1287
+ depth=num.zeros((len(lat_long_points),time_step_count),num.float)
1288
+ for i in range(len(lat_long_points)):
1289
+ depth[i]=gauge_depth[i]+tide+2.0*ha[i]
1290
+ #2.0*ha necessary because using two files with weights=1 are used
1291
+
1292
+ # The xmomentum stored in the .sts file should be the sum of the ua
1293
+ # in the two mux2 files multiplied by the depth.
1294
+ assert num.allclose(2.0*num.transpose(ua*depth), xmomentum)
1295
+
1296
+ #Check the momentums - va
1297
+ #momentum = velocity*(stage-elevation)
1298
+ # elevation = - depth
1299
+ #momentum = velocity_va *(stage+depth)
1300
+
1301
+ # The ymomentum stored in the .sts file should be the sum of the va
1302
+ # in the two mux2 files multiplied by the depth.
1303
+ assert num.allclose(2.0*num.transpose(va*depth), ymomentum)
1304
+
1305
+ # check the elevation values.
1306
+ # -ve since urs measures depth, sww meshers height,
1307
+ assert num.allclose(-elevation, gauge_depth) #Meters
1308
+
1309
+ fid.close()
1310
+ self.delete_mux(filesI)
1311
+ self.delete_mux(filesII)
1312
+ os.remove(sts_file)
1313
+
1314
+
1315
+ def test_urs2sts0(self):
1316
+ """
1317
+ Test single source
1318
+ """
1319
+ tide=0
1320
+ time_step_count = 3
1321
+ time_step = 2
1322
+ lat_long_points =[(-21.5,114.5),(-21,114.5),(-21.5,115), (-21.,115.)]
1323
+ n=len(lat_long_points)
1324
+ first_tstep=num.ones(n,num.int)
1325
+ first_tstep[0]+=1
1326
+ first_tstep[2]+=1
1327
+ last_tstep=(time_step_count)*num.ones(n,num.int)
1328
+ last_tstep[0]-=1
1329
+
1330
+ gauge_depth=20*num.ones(n,num.float)
1331
+ ha=2*num.ones((n,time_step_count),num.float)
1332
+ ha[0]=num.arange(0,time_step_count)
1333
+ ha[1]=num.arange(time_step_count,2*time_step_count)
1334
+ ha[2]=num.arange(2*time_step_count,3*time_step_count)
1335
+ ha[3]=num.arange(3*time_step_count,4*time_step_count)
1336
+ ua=5*num.ones((n,time_step_count),num.float)
1337
+ va=-10*num.ones((n,time_step_count),num.float)
1338
+
1339
+ base_name, files = self.write_mux2(lat_long_points,
1340
+ time_step_count, time_step,
1341
+ first_tstep, last_tstep,
1342
+ depth=gauge_depth,
1343
+ ha=ha,
1344
+ ua=ua,
1345
+ va=va)
1346
+
1347
+ urs2sts(base_name,
1348
+ basename_out=base_name,
1349
+ mean_stage=tide,verbose=False)
1350
+
1351
+ # now I want to check the sts file ...
1352
+ sts_file = base_name + '.sts'
1353
+
1354
+ #Let's interigate the sww file
1355
+ # Note, the sww info is not gridded. It is point data.
1356
+ fid = NetCDFFile(sts_file)
1357
+
1358
+ # Make x and y absolute
1359
+ x = fid.variables['x'][:]
1360
+ y = fid.variables['y'][:]
1361
+
1362
+ geo_reference = Geo_reference(NetCDFObject=fid)
1363
+ points = geo_reference.get_absolute(map(None, x, y))
1364
+ points = ensure_numeric(points)
1365
+
1366
+ x = points[:,0]
1367
+ y = points[:,1]
1368
+
1369
+ #Check that first coordinate is correctly represented
1370
+ #Work out the UTM coordinates for first point
1371
+ for i in range(4):
1372
+ zone, e, n = redfearn(lat_long_points[i][0], lat_long_points[i][1])
1373
+ assert num.allclose([x[i],y[i]], [e,n])
1374
+
1375
+ #Check the time vector
1376
+ times = fid.variables['time'][:]
1377
+
1378
+ times_actual = []
1379
+ for i in range(time_step_count):
1380
+ times_actual.append(time_step * i)
1381
+
1382
+ assert num.allclose(ensure_numeric(times),
1383
+ ensure_numeric(times_actual))
1384
+
1385
+ #Check first value
1386
+ stage = fid.variables['stage'][:]
1387
+ xmomentum = fid.variables['xmomentum'][:]
1388
+ ymomentum = fid.variables['ymomentum'][:]
1389
+ elevation = fid.variables['elevation'][:]
1390
+
1391
+ # Set original data used to write mux file to be zero when gauges are
1392
+ #not recdoring
1393
+ ha[0][0]=0.0
1394
+ ha[0][time_step_count-1]=0.0;
1395
+ ha[2][0]=0.0;
1396
+ ua[0][0]=0.0
1397
+ ua[0][time_step_count-1]=0.0;
1398
+ ua[2][0]=0.0;
1399
+ va[0][0]=0.0
1400
+ va[0][time_step_count-1]=0.0;
1401
+ va[2][0]=0.0;
1402
+
1403
+ assert num.allclose(num.transpose(ha),stage) #Meters
1404
+
1405
+ #Check the momentums - ua
1406
+ #momentum = velocity*(stage-elevation)
1407
+ # elevation = - depth
1408
+ #momentum = velocity_ua *(stage+depth)
1409
+
1410
+ depth=num.zeros((len(lat_long_points),time_step_count),num.float)
1411
+ for i in range(len(lat_long_points)):
1412
+ depth[i]=gauge_depth[i]+tide+ha[i]
1413
+ assert num.allclose(num.transpose(ua*depth),xmomentum)
1414
+
1415
+ #Check the momentums - va
1416
+ #momentum = velocity*(stage-elevation)
1417
+ # elevation = - depth
1418
+ #momentum = velocity_va *(stage+depth)
1419
+
1420
+ assert num.allclose(num.transpose(va*depth),ymomentum)
1421
+
1422
+ # check the elevation values.
1423
+ # -ve since urs measures depth, sww meshers height,
1424
+ assert num.allclose(-elevation, gauge_depth) #Meters
1425
+
1426
+ fid.close()
1427
+ self.delete_mux(files)
1428
+ os.remove(sts_file)
1429
+
1430
+ def test_urs2sts_nonstandard_meridian(self):
1431
+ """
1432
+ Test single source using the meridian from zone 50 as a nonstandard meridian
1433
+ """
1434
+ tide=0
1435
+ time_step_count = 3
1436
+ time_step = 2
1437
+ lat_long_points =[(-21.,114.5),(-21.,113.5),(-21.,114.), (-21.,115.)]
1438
+ n=len(lat_long_points)
1439
+ first_tstep=num.ones(n,num.int)
1440
+ first_tstep[0]+=1
1441
+ first_tstep[2]+=1
1442
+ last_tstep=(time_step_count)*num.ones(n,num.int)
1443
+ last_tstep[0]-=1
1444
+
1445
+ gauge_depth=20*num.ones(n,num.float)
1446
+ ha=2*num.ones((n,time_step_count),num.float)
1447
+ ha[0]=num.arange(0,time_step_count)
1448
+ ha[1]=num.arange(time_step_count,2*time_step_count)
1449
+ ha[2]=num.arange(2*time_step_count,3*time_step_count)
1450
+ ha[3]=num.arange(3*time_step_count,4*time_step_count)
1451
+ ua=5*num.ones((n,time_step_count),num.float)
1452
+ va=-10*num.ones((n,time_step_count),num.float)
1453
+
1454
+ base_name, files = self.write_mux2(lat_long_points,
1455
+ time_step_count, time_step,
1456
+ first_tstep, last_tstep,
1457
+ depth=gauge_depth,
1458
+ ha=ha,
1459
+ ua=ua,
1460
+ va=va)
1461
+
1462
+ urs2sts(base_name,
1463
+ basename_out=base_name,
1464
+ central_meridian=123,
1465
+ mean_stage=tide,
1466
+ verbose=False)
1467
+
1468
+ # now I want to check the sts file ...
1469
+ sts_file = base_name + '.sts'
1470
+
1471
+ #Let's interigate the sww file
1472
+ # Note, the sww info is not gridded. It is point data.
1473
+ fid = NetCDFFile(sts_file)
1474
+
1475
+ # Make x and y absolute
1476
+ x = fid.variables['x'][:]
1477
+ y = fid.variables['y'][:]
1478
+
1479
+ geo_reference = Geo_reference(NetCDFObject=fid)
1480
+ points = geo_reference.get_absolute(map(None, x, y))
1481
+ points = ensure_numeric(points)
1482
+
1483
+ x = points[:,0]
1484
+ y = points[:,1]
1485
+
1486
+ # Check that all coordinate are correctly represented
1487
+ # Using the non standard projection (50)
1488
+ for i in range(4):
1489
+ zone, e, n = redfearn(lat_long_points[i][0],
1490
+ lat_long_points[i][1],
1491
+ central_meridian=123)
1492
+ assert num.allclose([x[i],y[i]], [e,n])
1493
+ assert zone==-1
1494
+
1495
+ self.delete_mux(files)
1496
+
1497
+ def test_Urs_points(self):
1498
+ time_step_count = 3
1499
+ time_step = 2
1500
+ lat_long_points =[(-21.5,114.5),(-21.5,115),(-21.,115)]
1501
+ base_name, files = self.write_mux(lat_long_points,
1502
+ time_step_count, time_step)
1503
+ for file in files:
1504
+ urs = Read_urs(file)
1505
+ assert time_step_count == urs.time_step_count
1506
+ assert time_step == urs.time_step
1507
+
1508
+ for lat_lon, dep in map(None, lat_long_points, urs.lonlatdep):
1509
+ _ , e, n = redfearn(lat_lon[0], lat_lon[1])
1510
+ assert num.allclose(n, dep[2])
1511
+
1512
+ count = 0
1513
+ for slice in urs:
1514
+ count += 1
1515
+ #print slice
1516
+ for lat_lon, quantity in map(None, lat_long_points, slice):
1517
+ _ , e, n = redfearn(lat_lon[0], lat_lon[1])
1518
+ #print "quantity", quantity
1519
+ #print "e", e
1520
+ #print "n", n
1521
+ if file[-5:] == WAVEHEIGHT_MUX_LABEL[-5:] or \
1522
+ file[-5:] == NORTH_VELOCITY_LABEL[-5:] :
1523
+ assert num.allclose(e, quantity)
1524
+ if file[-5:] == EAST_VELOCITY_LABEL[-5:]:
1525
+ assert num.allclose(n, quantity)
1526
+ assert count == time_step_count
1527
+
1528
+ self.delete_mux(files)
1529
+
1530
+
1531
+
1532
+
1533
+ ################################################################################
1534
+
1535
+ if __name__ == "__main__":
1536
+ suite = unittest.makeSuite(Test_Mux,'test')
1537
+ runner = unittest.TextTestRunner() #verbosity=2)
1538
+ runner.run(suite)
1539
+