shakemap-modules 1.2.2__tar.gz → 1.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/CHANGELOG.md +285 -164
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/PKG-INFO +2 -2
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/pyproject.toml +1 -1
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/base/cli.py +28 -8
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/base/transfer_base.py +10 -4
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/assemble.py +107 -77
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/associate.py +10 -4
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/augment.py +101 -45
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/contour.py +33 -18
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/dyfi.py +61 -29
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/history.py +66 -40
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/kml.py +12 -10
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/makecsv.py +43 -19
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/mapping.py +107 -83
- shakemap_modules-1.2.3/src/shakemap_modules/coremods/model.py +681 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/plotregr.py +16 -7
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/raster.py +54 -78
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/shape.py +16 -9
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/sleep.py +4 -2
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/sm_select.py +35 -24
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/transfer_email.py +5 -4
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/transfer_pdl.py +1 -1
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/uncertaintymaps.py +61 -35
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/model.conf +29 -22
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/modelspec.conf +1 -1
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/mapping/mapmaker.py +104 -25
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/attenuation.py +59 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/bias.py +340 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/conditioning.py +84 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/modeling/config.py +2 -65
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/ground_motion.py +252 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/modeling/imt_utils.py +31 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/info_builder.py +334 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/masking.py +259 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/mvn.py +539 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/options.py +70 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/origin_setup.py +172 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/output_grid.py +455 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/predictors.py +149 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/prior.py +327 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/results.py +275 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/station_conversions.py +123 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/station_inventory.py +270 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/station_json.py +341 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/station_predictions.py +514 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/storage.py +251 -0
- shakemap_modules-1.2.3/src/shakemap_modules/modeling/uncertainty.py +109 -0
- shakemap_modules-1.2.3/src/shakemap_modules/utils/components.py +18 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/dataframe.py +43 -2
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/PKG-INFO +2 -2
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/SOURCES.txt +12 -4
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/requires.txt +1 -1
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/scm_file_list.json +36 -10
- shakemap_modules-1.2.3/src/shakemap_modules.egg-info/scm_version.json +8 -0
- shakemap_modules-1.2.2/src/shakemap_modules/coremods/model.py +0 -480
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/bias.py +0 -296
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/context.py +0 -298
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/gmpe_setup.py +0 -411
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/griddict.py +0 -326
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/info_builder.py +0 -293
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/masking.py +0 -191
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/mvn.py +0 -370
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/origin_setup.py +0 -160
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/output_grid.py +0 -358
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/station_data.py +0 -641
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/station_json.py +0 -370
- shakemap_modules-1.2.2/src/shakemap_modules/modeling/storage.py +0 -212
- shakemap_modules-1.2.2/src/shakemap_modules.egg-info/scm_version.json +0 -8
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/.gitignore +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/.gitlab-ci.yml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/DISCLAIMER.md +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/LICENSE.md +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/MANIFEST.in +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/README.md +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/code.json +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/install.sh +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/pytest.ini +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/setup.cfg +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/setup.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/base/base.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/coverage.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/exception.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/gridxml.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/info.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/rupture.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/save.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/stations.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/transfer_scp.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/xtestimage.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/xtestplot.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/xtestplot_multi.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/coremods/xtestplot_spectra.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/fdsn_networks.json +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/WGS1984.prj +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/mi.lyr +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/mi.shp.xml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/pga.lyr +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/pga.shp.xml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/pgv.lyr +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/pgv.shp.xml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/psa0p3.lyr +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/psa0p3.shp.xml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/psa1p0.lyr +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/psa1p0.shp.xml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/psa3p0.lyr +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gis/psa3p0.shp.xml +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/gmpe_sets.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/alaska.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/australia.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/california.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/cascadia.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/chile.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/china.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/europe_share.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/hawaii.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/induced.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/japan.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/new_zealand.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/south_africa.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/layers/taiwan.wkt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/logging.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/loggingspec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/circle.png +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/intensity_legend.png +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.cn +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.en +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.en-AU +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.en-CA +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.es +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.fr-CA +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.it +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/map_strings.tw +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/mapping/triangle.png +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/migrate.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/migratespec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/modules.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/modulesspec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/products.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/productsspec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/queue.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/queuespec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/select.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/selectspec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/shake.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/shakespec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/simulationspec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/transfer.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/transfer_reviewed_origin.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/data/transferspec.conf +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/mapping/mercatormap.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/mapping/scalebar.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/modeling/__init__.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/modeling/distance_utils.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/modeling/formatting.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/amps.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/comcat.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/config.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/generic_amp.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/layers.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/logging_utils.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/macros.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/points_to_station.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/probs.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/smclone.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules/utils/utils.py +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/dependency_links.txt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/entry_points.txt +0 -0
- {shakemap_modules-1.2.2 → shakemap_modules-1.2.3}/src/shakemap_modules.egg-info/top_level.txt +0 -0
|
@@ -1,10 +1,131 @@
|
|
|
1
1
|
# main
|
|
2
2
|
|
|
3
|
+
## 1.2.3 / 2026-09-06
|
|
4
|
+
- Modules refactor
|
|
5
|
+
- Refactored and reviewed ShakeMap top-level modules for consistent
|
|
6
|
+
standalone/shake behavior, resource handling, and CoreModule
|
|
7
|
+
argument parsing.
|
|
8
|
+
- Fixed standalone configuration-path handling in assemble,
|
|
9
|
+
associate, and select while preserving backward compatibility
|
|
10
|
+
with direct config-file calls.
|
|
11
|
+
- Fixed top-level --comment handling so assemble comments no longer
|
|
12
|
+
interfere with chained module parsing.
|
|
13
|
+
- Improved transfer/augment robustness, including cleanup on failed
|
|
14
|
+
PDL transfers, missing-email attachments, output-directory handling,
|
|
15
|
+
packet JSON ingestion, and .saved state management.
|
|
16
|
+
- Fixed multi-component product handling in raster, contour,
|
|
17
|
+
mapping, uncertainty-map, and plot regression modules to prevent
|
|
18
|
+
wrong-component selection, filename overwrites, and contents.xml
|
|
19
|
+
collisions.
|
|
20
|
+
- Standardized preferred-component selection, using
|
|
21
|
+
GREATER_OF_TWO_HORIZONTAL when available with deterministic
|
|
22
|
+
fallback behavior.
|
|
23
|
+
- Improved mapping/KML/shape reliability without changing
|
|
24
|
+
established rendering behavior; fixed component-order dependence,
|
|
25
|
+
container cleanup, map target metadata, and several small resource
|
|
26
|
+
leaks.
|
|
27
|
+
- Preserved and integrated recent antimeridian, ocean-contour,
|
|
28
|
+
hillshade, Natural Earth, and mapping performance improvements.
|
|
29
|
+
- Improved DYFI robustness: optional retrieval failures are now
|
|
30
|
+
nonfatal throughout, GeoJSON station names are parsed correctly,
|
|
31
|
+
and dateline-crossing cells get correct center longitudes.
|
|
32
|
+
- Vectorized DYFI uncertainty lookup with identical threshold behavior
|
|
33
|
+
and a large performance improvement.
|
|
34
|
+
- Hardened history/version handling, backup parsing, empty-history
|
|
35
|
+
behavior, and HDF container cleanup.
|
|
36
|
+
- Left the refactored model orchestration layer intentionally thin;
|
|
37
|
+
no additional changes were needed after review.
|
|
38
|
+
- Refactor b20
|
|
39
|
+
- Updated finite-rupture prediction code to request uncertainty
|
|
40
|
+
components from the actual filtered GMPE or IPE being evaluated,
|
|
41
|
+
rather than from cached capabilities of the unfiltered default
|
|
42
|
+
model.
|
|
43
|
+
- Removed obsolete cached uncertainty fields from PredictorSet
|
|
44
|
+
(gmpe_total_sd_only, gmpe_stddev_types, ipe_total_sd_only, and
|
|
45
|
+
ipe_stddev_types) and centralized predictor capability resolution.
|
|
46
|
+
- Changed internal tau/phi fallback logic to depend on the uncertainty
|
|
47
|
+
components actually returned by a prediction; ShakeMap synthesizes
|
|
48
|
+
a tau/phi split only when the prediction supplies total sigma alone.
|
|
49
|
+
- Added provenance to station predictions so ShakeMap can distinguish
|
|
50
|
+
predictor-supplied tau/phi from internally synthesized values.
|
|
51
|
+
- Corrected stationlist.json uncertainty output to report the
|
|
52
|
+
predictor’s total sigma directly rather than reconstructing sigma
|
|
53
|
+
from tau and phi.
|
|
54
|
+
- Changed stationlist.json to report tau and phi only when they were
|
|
55
|
+
supplied by the unconditioned prediction; synthetic internal tau/phi
|
|
56
|
+
values are now serialized as null.
|
|
57
|
+
- Added regression coverage for mixed per-IMT uncertainty capabilities,
|
|
58
|
+
filtered GMPEs, VirtualIPE-derived predictions, total-only predictions,
|
|
59
|
+
and station JSON uncertainty provenance.
|
|
60
|
+
- Restored dashed ground-motion contours over water while preserving solid
|
|
61
|
+
contours over land. Replaced the previous double-draw/z-order approach
|
|
62
|
+
with direct land/water segmentation using the pre-rendered basemap
|
|
63
|
+
raster, reducing contour rendering overhead.
|
|
64
|
+
- Refactor b19 - Masking and Bias
|
|
65
|
+
- Fixed custom-mask handling for point output so configured raster
|
|
66
|
+
masks are ignored rather than attempting to apply an empty grid
|
|
67
|
+
mask to point arrays.
|
|
68
|
+
- Range-limited Engler event-state conditioning.
|
|
69
|
+
- Corrected nominal-bias semantics.
|
|
70
|
+
- BiasResult/ConditioningSystem ownership cleanup.
|
|
71
|
+
- Removal of bias_max_dsigma.
|
|
72
|
+
- Corrected MMI station uncertainty selection so MMI uses the IPE
|
|
73
|
+
total-standard-deviation mode rather than the GMPE mode.
|
|
74
|
+
- Optimized land masking by clipping selected Natural Earth 10 m
|
|
75
|
+
geometries to raster pixel-edge bounds before rasterization, with
|
|
76
|
+
bit-for-bit identical masks and substantially improved performance.
|
|
77
|
+
- Fixed stale rock/soil station depth parameters by constructing
|
|
78
|
+
fresh site contexts for the rock and soil Vs30 cases.
|
|
79
|
+
- Removed the dead ModelResults.conditioning field.
|
|
80
|
+
- Made info_builder copy prediction metadata rather than mutate the
|
|
81
|
+
supplied metadata object.
|
|
82
|
+
- Cleaned up remaining directivity issues, including MMI handling and
|
|
83
|
+
stale/error-prone code.
|
|
84
|
+
- Fixed standalone model logging to use model.log rather than the
|
|
85
|
+
obsolete shape.log.
|
|
86
|
+
- Added masking-equivalence regression coverage to protect the
|
|
87
|
+
land-mask optimization.
|
|
88
|
+
- Refactor b18 — Prediction/state cleanup and optimization
|
|
89
|
+
- Kept point-output arrays 1-D end-to-end and reused existing station
|
|
90
|
+
distance contexts.
|
|
91
|
+
- Reduced PredictionRuntime to rupture/directivity state and moved
|
|
92
|
+
prediction metadata construction to a pure function.
|
|
93
|
+
- Added FFSimmer/VirtualIPE source-GMPE reuse for point-rupture station
|
|
94
|
+
predictions, removing duplicate VirtualIPE GMPE evaluations.
|
|
95
|
+
- Removed hidden land-mask state and made custom masking non-mutating.
|
|
96
|
+
- Removed dead persisted fields from rupture, geometry, attenuation, and
|
|
97
|
+
predictor products.
|
|
98
|
+
- Tested finite-rupture VirtualIPE reuse, found the speed gain too small
|
|
99
|
+
to justify the added complexity, and reverted it.
|
|
100
|
+
- Reduced representative ci3144585 model time further to about 36.5 s,
|
|
101
|
+
roughly 29% faster than b16 overall.
|
|
102
|
+
- Refactor b17 — Station modeling refactor
|
|
103
|
+
- Replaced dataframe-centric station state with explicit station
|
|
104
|
+
observation, geometry, prediction, QC, bias, and group products.
|
|
105
|
+
- Removed StationDataFrame-style temporal prediction/conversion
|
|
106
|
+
bookkeeping from the modeling path.
|
|
107
|
+
- Made MMI↔PGM station conversions explicit and preserved native versus
|
|
108
|
+
derived observation provenance.
|
|
109
|
+
- Eliminated a redundant station prediction pass, cutting station FFSimmer
|
|
110
|
+
work roughly in half.
|
|
111
|
+
- Reduced representative ci3144585 model time from about 51.1 s to 38.7 s.
|
|
112
|
+
- Refactor b10--b16 — Modeling architecture refactor
|
|
113
|
+
- Removed the giant ModelingContext and replaced it with explicit modeling
|
|
114
|
+
products and data flow.
|
|
115
|
+
- Broke the model workflow into focused setup, prediction, conditioning,
|
|
116
|
+
bias, MVN, and output stages.
|
|
117
|
+
- Established the architecture that b17/b18 subsequently simplified rather
|
|
118
|
+
than replacing.
|
|
119
|
+
- Reconciled assemble's -p option with model.conf's
|
|
120
|
+
interp->prediction_location->file option.
|
|
121
|
+
- Broke out get_imt_type_indices function from compute_bias; added imt_type_ix
|
|
122
|
+
array to each IMT in output HDF file.
|
|
123
|
+
|
|
3
124
|
## 1.2.2 / 2026-08-23
|
|
4
125
|
- Update esi-shakelib requirement to v1.2.5.
|
|
5
126
|
- Add 0.6 sec SA to default imt_list in model.conf.
|
|
6
127
|
- Mapping and Uncertainty Map Improvements
|
|
7
|
-
|
|
128
|
+
- Hillshade and terrain rendering
|
|
8
129
|
- Replaced Matplotlib LightSource.blend_hsv() with a custom RGB hillshade
|
|
9
130
|
blend to avoid the dark/teal color shifts seen in some maps.
|
|
10
131
|
- Retained a single directional light source for consistent terrain relief.
|
|
@@ -20,7 +141,7 @@
|
|
|
20
141
|
- The final balance produces darker, better-defined relief, avoids the
|
|
21
142
|
garish mint-green appearance in many coastal/lowland areas, and restores
|
|
22
143
|
richer terrain colors.
|
|
23
|
-
|
|
144
|
+
- Vector-layer performance
|
|
24
145
|
- Added Fiona/GDAL bbox-filtered reads for map vector layers so geometries
|
|
25
146
|
outside the map region are not unnecessarily materialized.
|
|
26
147
|
- Applied regional filtering to configured vector layers and Natural Earth
|
|
@@ -30,7 +151,7 @@
|
|
|
30
151
|
- Mapping also applies regional filtering to roads and faults.
|
|
31
152
|
- These changes substantially reduced Natural Earth/vector I/O and Cartopy
|
|
32
153
|
geometry-projection costs.
|
|
33
|
-
|
|
154
|
+
- Antimeridian handling
|
|
34
155
|
- Added robust detection for maps crossing 180 degrees in all supported
|
|
35
156
|
longitude representations:
|
|
36
157
|
* wrapped bounds, such as 179 to -179
|
|
@@ -44,7 +165,7 @@
|
|
|
44
165
|
full-rendering path.
|
|
45
166
|
- The same antimeridian behavior is used by both mapping and
|
|
46
167
|
uncertaintymaps.
|
|
47
|
-
|
|
168
|
+
- Shared rendering and caching
|
|
48
169
|
- Reuse a single Mercator projection for all maps generated for an event.
|
|
49
170
|
- Render static basemap layers once per event and reuse the resulting raster
|
|
50
171
|
for all IMT maps.
|
|
@@ -54,7 +175,7 @@
|
|
|
54
175
|
filtered/positioned city list.
|
|
55
176
|
- Compute projected topography and hillshade intensity once per event and
|
|
56
177
|
reuse them across regular maps.
|
|
57
|
-
|
|
178
|
+
- Matplotlib rendering optimizations
|
|
58
179
|
- Removed redundant fig.canvas.draw() calls when precomputed city-collision
|
|
59
180
|
results are available.
|
|
60
181
|
- Preserved the canvas draw fallback for callers that still require local
|
|
@@ -66,7 +187,7 @@
|
|
|
66
187
|
before reuse.
|
|
67
188
|
- Mapping and uncertainty maps can independently add small amounts of extra
|
|
68
189
|
right/top padding by adjusting the cached bounding box coordinates.
|
|
69
|
-
|
|
190
|
+
- Uncertainty map improvements
|
|
70
191
|
- Applied the same regional vector-reading and antimeridian optimizations as
|
|
71
192
|
the regular mapping path.
|
|
72
193
|
- Reused the shared projection, basemap raster, and precomputed city
|
|
@@ -80,7 +201,7 @@
|
|
|
80
201
|
- In the profiled test case, uncertaintymaps runtime dropped from about
|
|
81
202
|
68.6 seconds to about 46.4 seconds after the canvas-draw and tight-bbox
|
|
82
203
|
optimizations.
|
|
83
|
-
|
|
204
|
+
- Performance summary
|
|
84
205
|
- The ordinary mapping path improved from roughly 56.7 seconds to roughly
|
|
85
206
|
31 seconds before the later rendering optimizations, with a further modest
|
|
86
207
|
improvement from eliminating redundant canvas draws and bbox calculations.
|
|
@@ -89,7 +210,7 @@
|
|
|
89
210
|
original vector-rendering behavior.
|
|
90
211
|
- Uncertainty-map rendering improved by roughly 22 seconds, or about 32
|
|
91
212
|
percent, in the profiled case after eliminating duplicate rendering work.
|
|
92
|
-
|
|
213
|
+
- Testing and robustness
|
|
93
214
|
- Added regression coverage for ordinary, wrapped-antimeridian, and
|
|
94
215
|
unwrapped-antimeridian clip-box construction.
|
|
95
216
|
- Added tests confirming that ordinary maps use bbox-filtered reads while
|
|
@@ -99,236 +220,236 @@
|
|
|
99
220
|
- Revised makecsv -g to provide a dummy network code of "--" for stations that
|
|
100
221
|
don't have a network code.
|
|
101
222
|
- Hardened station-value handling in mapmaker.py
|
|
102
|
-
|
|
223
|
+
- Updated map station plotting to handle Python None in addition to legacy "null"
|
|
103
224
|
values.
|
|
104
|
-
|
|
225
|
+
- Safely handles missing/invalid observed intensity, converted instrumental intensity,
|
|
105
226
|
and IMT amplitudes.
|
|
106
|
-
|
|
107
|
-
|
|
227
|
+
- Missing instrumental amplitudes are skipped rather than interpreted as zero.
|
|
228
|
+
- Fixed the Tohoku mapping failure caused by float(None).
|
|
108
229
|
- Resolved high-latitude/polar mapping failures
|
|
109
|
-
|
|
230
|
+
- Tracked several Cartopy failures for the Franz Josef Land event through projection
|
|
110
231
|
construction, extent setting, and raster rendering.
|
|
111
|
-
|
|
232
|
+
- Confirmed that using event latitude bounds as
|
|
112
233
|
Mercator(min_latitude=..., max_latitude=...) was incorrect.
|
|
113
|
-
|
|
234
|
+
- Rejected Azimuthal Equidistant and Plate Carrée alternatives after testing exposed
|
|
114
235
|
curved raster-domain artifacts and severe map distortion.
|
|
115
|
-
|
|
236
|
+
- Kept the existing Mercator architecture but expanded its fixed projection validity
|
|
116
237
|
range to approximately ±89.5°.
|
|
117
|
-
|
|
238
|
+
- Centralized Mercator construction so mapping.py, mapmaker.py, and MercatorMap all use
|
|
118
239
|
the same projection.
|
|
119
|
-
|
|
240
|
+
- Restored correct map geometry, aspect, raster alignment, contours, graticules, and
|
|
120
241
|
epicenter placement for the far-north event.
|
|
121
|
-
|
|
122
|
-
|
|
242
|
+
- Identified the corresponding uncertaintymaps projection update
|
|
243
|
+
- Confirmed that uncertaintymaps.py independently constructs the old default Mercator
|
|
123
244
|
projection.
|
|
124
|
-
|
|
245
|
+
- Determined that it should use the same centralized get_map_projection() helper as
|
|
125
246
|
mapping.py.
|
|
126
247
|
- Hardened station-value handling in kml.py
|
|
127
|
-
|
|
128
|
-
|
|
248
|
+
- Fixed KML generation failure when station amplitudes contain Python None.
|
|
249
|
+
- Added a shared finite-number conversion helper accepting numeric values while rejecting
|
|
129
250
|
None, "null", malformed values, NaN, and Inf.
|
|
130
|
-
|
|
251
|
+
- Updated get_imt_text() to ignore missing amplitudes and preserve the existing
|
|
131
252
|
"nan <units>" fallback.
|
|
132
|
-
|
|
253
|
+
- Updated get_intensity() to safely fall back through station intensity, MMI-channel
|
|
133
254
|
intensity, and finally zero.
|
|
134
|
-
|
|
135
|
-
|
|
255
|
+
- Added regression tests for both None and legacy "null" values.
|
|
256
|
+
- Verified the previously failing usp000gvtu KML event now completes successfully.
|
|
136
257
|
- Correctness pass over model modules:
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
258
|
+
- Fixed station-trimming longitude padding and improved dateline/polar handling.
|
|
259
|
+
- Replaced global NumPy error-state changes with local np.errstate() contexts.
|
|
260
|
+
- Fixed mechanism/STREC precedence and kept rupture/origin context consistent.
|
|
261
|
+
- Made input/output container cleanup exception-safe.
|
|
262
|
+
- Tightened handling of optional StationList/STREC container data so unrelated AttributeErrors
|
|
142
263
|
are not hidden.
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
264
|
+
- Made finite-rupture context shape restoration exception-safe.
|
|
265
|
+
- Removed a duplicate sites_obj_out declaration from ModelingContext.
|
|
266
|
+
- Hardened stddev handling so returned arrays are associated with the exact requested stddev
|
|
146
267
|
types, with canonical ShakeMap ordering preserved.
|
|
147
|
-
|
|
268
|
+
- Added regression tests for nonstandard stddev ordering and validation.
|
|
148
269
|
- Streamline build-test-deploy pipeline in .gitlab-ci.yml.
|
|
149
270
|
- Fix mapping bug reported by Anthony C. of GA.
|
|
150
271
|
- Cleanup/correctness pass on scalebar.py.
|
|
151
272
|
- Cleanup of codes in shakemap_modules/base:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
273
|
+
- Cleaned and simplified CLI argument handling
|
|
274
|
+
- Restored optional logdir and transfer outdir behavior to match the documented CLI semantics.
|
|
275
|
+
- Simplified path validation and error handling with pathlib and parser.error().
|
|
276
|
+
- Limited returned custom-argument dictionaries to only caller-defined options.
|
|
277
|
+
- Improved CoreModule/contents handling
|
|
278
|
+
- Fixed cross-platform contents.xml download paths to always use portable forward slashes.
|
|
279
|
+
- Hardened XML parsing for empty captions and unexpected elements.
|
|
280
|
+
- Simplified filesystem and XML writing logic.
|
|
281
|
+
- Refined transfer base infrastructure
|
|
282
|
+
- Modernized path and UTC handling.
|
|
283
|
+
- Simplified backup discovery/versioning and product-property updates.
|
|
284
|
+
- Preserved existing transfer-blocking, backup, review-status, and argument-parsing behavior.
|
|
285
|
+
- General maintenance
|
|
286
|
+
- Removed redundant code and older path-handling patterns.
|
|
166
287
|
- Refactor of files in shakemap_modules/utils:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
288
|
+
- Improved configuration handling and validation
|
|
289
|
+
- Cleaned up config-path handling, error messages, logging, and configspec usage.
|
|
290
|
+
- Preserved existing validator semantics while modernizing implementation details.
|
|
291
|
+
- Added clearer failure behavior for invalid or incomplete configuration states.
|
|
292
|
+
- Hardened model and GMPE selection utilities
|
|
293
|
+
- Added protection against invalid/nonfinite tectonic-region probabilities and STREC
|
|
173
294
|
distances.
|
|
174
|
-
|
|
175
|
-
|
|
295
|
+
- Clarified slab-model handling and subduction GMPE selection.
|
|
296
|
+
- Preserved existing probability/taper formulas while tightening validation around
|
|
176
297
|
unsupported configurations.
|
|
177
|
-
|
|
178
|
-
|
|
298
|
+
- Improved station/data conversion utilities
|
|
299
|
+
- Made station/point conversion more deterministic and robust to malformed IDs, missing IMTs,
|
|
179
300
|
and incomplete data.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
301
|
+
- Improved temporary-file cleanup, SQLite handling, and JSON/XML serialization.
|
|
302
|
+
- Standardized UTF-8 handling and safer ASCII normalization for problematic Unicode station names.
|
|
303
|
+
- Strengthened amplitude database handling
|
|
304
|
+
- Fixed duplicate-station association so each candidate uses its own travel-time estimate.
|
|
305
|
+
- Corrected channel matching to distinguish identical channel codes with different location codes.
|
|
306
|
+
- Parameterized SQL, improved transaction/resource handling, and corrected timezone conversion
|
|
186
307
|
behavior.
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
308
|
+
- Improved ShakeMap cloning support
|
|
309
|
+
- Fixed generated model.conf details, including outlier settings and independent X/Y grid spacing.
|
|
310
|
+
- Added HTTP timeouts/status checking and reliable temporary-file cleanup.
|
|
311
|
+
- Improved station filtering and database cleanup while retaining historical ShakeMap migration
|
|
191
312
|
behavior.
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
313
|
+
- Improved logging, layers, amplification, and dataframe helpers
|
|
314
|
+
- Fixed logging handler configuration and level handling.
|
|
315
|
+
- Corrected polygon edge-distance handling for closing segments.
|
|
316
|
+
- Hardened generic amplification grid access and metadata handling.
|
|
317
|
+
- Simplified dataframe/XML conversion and removed unused intermediate database work.
|
|
318
|
+
- Removed obsolete and dead code
|
|
319
|
+
- Removed unused imports, empty methods, redundant configuration plumbing, legacy helper code, and
|
|
199
320
|
decorative/commented-out blocks.
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
321
|
+
- Replaced unnecessary regexes and older Python idioms with simpler modern equivalents.
|
|
322
|
+
- General maintenance
|
|
323
|
+
- Standardized lazy logging, context-managed resources, explicit UTF-8 handling, modern path handling,
|
|
203
324
|
deterministic ordering, and clearer exceptions.
|
|
204
325
|
- Coremods: assemble augment coverage dyfi gridxml info makecsv raster rupture save shape
|
|
205
326
|
sleep sm_select stations transfer_email transfer_pdl transfer_scp:
|
|
206
|
-
|
|
327
|
+
- Resource safety: Reworked many modules so HDF containers, ZIP files, SQLite connections,
|
|
207
328
|
and ordinary files are reliably closed with try/finally or context managers, including
|
|
208
329
|
failure paths.
|
|
209
|
-
|
|
330
|
+
- Safer failure behavior: Delayed destructive cleanup of old products/backups until new
|
|
210
331
|
processing had succeeded, removed inappropriate ignore_errors=True, and added clearer
|
|
211
332
|
standalone argument/directory validation.
|
|
212
|
-
|
|
333
|
+
- Dependency and target correctness: Fixed stale or incorrect dependency declarations, added
|
|
213
334
|
missing optional inputs and generated targets, and improved handling of dynamically named products.
|
|
214
|
-
|
|
335
|
+
- Multi-component correctness: Removed assumptions that only the first IMC/component mattered,
|
|
215
336
|
preserved legacy filenames for GREATER_OF_TWO_HORIZONTAL, and added component-specific
|
|
216
337
|
naming/contents where needed.
|
|
217
|
-
|
|
338
|
+
- Metadata correctness: Stopped relying on incidental “last IMT processed” state, used each
|
|
218
339
|
layer’s own metadata where appropriate, and added checks for consistent grid geometry.
|
|
219
|
-
|
|
340
|
+
- Data integrity fixes: Corrected several subtle problems such as reversed full-grid latitude
|
|
220
341
|
ordering, cross-component dataframe column leakage, incorrect DYFI standard-deviation behavior,
|
|
221
342
|
and per-destination transfer state leaking between destinations.
|
|
222
|
-
|
|
343
|
+
- Configuration robustness: Standardized str(get_configspec(...)) usage for ConfigObj, validated
|
|
223
344
|
merged configurations rather than only globals, and made standalone configuration handling more
|
|
224
345
|
explicit.
|
|
225
|
-
|
|
346
|
+
- Transfer-system cleanup: Fixed NO_TRANSFER control flow, made Email honor mail_once, corrected
|
|
226
347
|
per-PDL-destination system_id handling, avoided mutating shared ConfigObj sections, and made
|
|
227
348
|
temporary transfer directories exception-safe.
|
|
228
|
-
|
|
349
|
+
- Deterministic behavior: Sorted glob results where file ordering could affect which input was
|
|
229
350
|
selected, and hardened backup-version parsing.
|
|
230
|
-
|
|
351
|
+
- Logging cleanup: Converted many messages to lazy logger formatting, fixed copied/wrong logfile names
|
|
231
352
|
and messages, replaced deprecated logging calls, and standardized use of module loggers.
|
|
232
|
-
|
|
353
|
+
- Modern Python cleanup: Replaced old-style super(...), removed dead imports/constants/scaffolding,
|
|
233
354
|
simplified redundant subclasses and branches, used timezone-aware UTC timestamps, and switched file
|
|
234
355
|
I/O to explicit UTF-8.
|
|
235
|
-
|
|
356
|
+
- API consistency: Fixed mismatches between constructors, execute() methods, and standalone main()
|
|
236
357
|
calls, and initialized module state consistently.
|
|
237
|
-
|
|
358
|
+
- Code quality without gratuitous behavioral change: Removed a lot of dead or misleading code, kept
|
|
238
359
|
lines within 79 columns, and generally preserved scientific/product behavior unless there was a
|
|
239
360
|
clear correctness bug or confirmed intended change.
|
|
240
|
-
|
|
361
|
+
- Overall, the common theme was making the coremods more predictable, failure-safe, deterministic, and
|
|
241
362
|
internally consistent while also deleting quite a bit of historical cruft.
|
|
242
363
|
- assemble.py:
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
364
|
+
- expanded dependencies to include the event-local inputs that actually affect assemble
|
|
365
|
+
- fixed backup selection to sort backupN directories numerically instead of lexicographically
|
|
366
|
+
- corrected simulation.conf validation errors to report against sim_config
|
|
367
|
+
- ensured all ShakeMapInputContainer instances are closed with try/finally
|
|
368
|
+
- changed history.json reading to a context manager
|
|
369
|
+
- added explicit validation for standalone config, indir, and outdir
|
|
370
|
+
- removed ignore_errors=True from destructive directory cleanup
|
|
371
|
+
- fixed the stale .transferred comment to .saved
|
|
372
|
+
- normalized get_configspec("simulation") with str(...)
|
|
373
|
+
- made X/Y simulation reshaping honor row/column ordering
|
|
374
|
+
- strengthened LAT/LON and X/Y regular-grid validation
|
|
375
|
+
- added explicit errors for missing coordinate columns and incorrect simulation row counts
|
|
376
|
+
- convert nonfinite/nonpositive simulated amplitudes to NaN before taking logs
|
|
377
|
+
- hardened _trim_grid() against all-invalid and untrimmable grids
|
|
378
|
+
- changed the standalone logfile from the apparent copy/paste shape.log to assemble.log
|
|
379
|
+
- modernized super(), set literals, truthiness checks, and some logging/style details
|
|
380
|
+
- removed the leftover # ADD THIS comment
|
|
260
381
|
- shape.py:
|
|
261
|
-
|
|
262
|
-
|
|
382
|
+
- Fixed AREA/PERIMETER warnings.
|
|
383
|
+
- General clean up of module code.
|
|
263
384
|
- Suppressed a GDAL warning emitted by rasterio.features.shapes() in mapping.py.
|
|
264
385
|
- Changed the name of logging.py to logging_utils.py. Updated all affected modules.
|
|
265
386
|
- Modified config.py:
|
|
266
|
-
|
|
387
|
+
- Improved configuration logging by replacing deprecated logging.warn() calls with
|
|
267
388
|
logging.warning() and converting logging messages to lazy formatting.
|
|
268
|
-
|
|
389
|
+
- Added explicit exception chaining when validators convert low-level TypeError/ValueError
|
|
269
390
|
exceptions into ValidateError, preserving the original cause for debugging.
|
|
270
|
-
|
|
391
|
+
- Simplified and hardened annotatedfloat_type() by removing broad exception handling
|
|
271
392
|
and validating supported unit suffixes explicitly.
|
|
272
|
-
|
|
393
|
+
- Fixed cfg_bool() so native boolean values are handled correctly and invalid boolean
|
|
273
394
|
strings raise ValidateError instead of being silently treated as False.
|
|
274
|
-
|
|
395
|
+
- Fixed check_all_configs() so a validation exception cannot leave results undefined
|
|
275
396
|
before later use.
|
|
276
|
-
|
|
397
|
+
- Fixed check_profile_config() to avoid deleting profile entries while iterating over
|
|
277
398
|
the live dictionary key view.
|
|
278
|
-
|
|
399
|
+
- Improved validator robustness for malformed or unexpected input types while preserving
|
|
279
400
|
the existing configuration-validation behavior where appropriate.
|
|
280
|
-
|
|
401
|
+
- General cleanup for pylint compliance and clearer error reporting without changing valid
|
|
281
402
|
ShakeMap configuration semantics.
|
|
282
403
|
- Optimized KML generation
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
404
|
+
- Reduced KML runtime from roughly 5.5 s to ~3 s.
|
|
405
|
+
- Improved contour-generation efficiency while retaining the existing Natural Earth 10m ocean-mask behavior.
|
|
406
|
+
- Removed dead constants, unused legacy functions, redundant code, and stale documentation.
|
|
407
|
+
- Improved NaN handling in MMI polygon generation.
|
|
287
408
|
- Fixed KML layer visibility and organization
|
|
288
|
-
|
|
409
|
+
- Corrected station, contour, and polygon visibility behavior in Google Earth by removing redundant
|
|
289
410
|
child-level visibility=0 settings.
|
|
290
|
-
|
|
291
|
-
|
|
411
|
+
- Moved individual IMT contour folders to the top level instead of nesting them under a common Contours folder.
|
|
412
|
+
- Verified that the missing intensity legend in Google Earth Web is due to unsupported ScreenOverlay
|
|
292
413
|
rendering rather than bad KML or a missing/corrupt legend image.
|
|
293
|
-
|
|
294
|
-
|
|
414
|
+
- Retained a conventional ScreenOverlay implementation for clients that support it.
|
|
415
|
+
- Updated KML tests for the revised hierarchy and improved their resource/error handling.
|
|
295
416
|
- Cleaned coremods/contour.py
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
417
|
+
- Removed redundant directory checks and dead constructor filter state.
|
|
418
|
+
- Standardized contour filter sizing on products.conf.
|
|
419
|
+
- Ensured the ShakeMap output container is always closed.
|
|
420
|
+
- Replaced manual Fiona/JSON resource management with context managers.
|
|
421
|
+
- Removed overly broad GMICE exception handling so invalid configuration now fails explicitly.
|
|
422
|
+
- Clarified GMICE applicability logic for MMI, PGA/PGV, and SA.
|
|
423
|
+
- Consolidated duplicate schemas.
|
|
424
|
+
- Corrected empty-contour GeoJSON bbox output to use a numeric array rather than a string.
|
|
425
|
+
- Cleaned variable shadowing, comments, docstrings, and minor redundancies.
|
|
426
|
+
- Preserved required conversion of configspec paths to strings for ConfigObj.
|
|
306
427
|
- Major optimization of plotregr.py
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
428
|
+
- Reduced normal runtime from roughly 4.5 s to ~0.5 s.
|
|
429
|
+
- Reduced profiled runtime from 8.4 s to ~1.1 s.
|
|
430
|
+
- Replaced thousands of per-station Matplotlib calls with batched seismic and macroseismic station plotting.
|
|
431
|
+
- Reduced Matplotlib object creation and eliminated most of the expensive legend-placement overhead.
|
|
432
|
+
- Fixed a multi-component bug where the output container was closed inside the component loop.
|
|
433
|
+
- Reused attenuation arrays instead of rereading them for JSON output.
|
|
434
|
+
- Reduced data passed to plotting routines and cleaned file/resource handling.
|
|
435
|
+
- Removed obsolete multiprocessing support after benchmarking showed 8 workers increased runtime from ~0.5 s to ~4.5 s.
|
|
436
|
+
- Simplified plotregr to always render serially.
|
|
316
437
|
- Fixed bug in logging.py.
|
|
317
438
|
- Tried to make multiprocessing of mapping and plotting modules a little safer.
|
|
318
439
|
- Removed multiprocessing from shape.py because it made it slower.
|
|
319
440
|
- Remove annoying 'Down-casting double precision floating point to single precision' warning in raster.py.
|
|
320
441
|
- Removed obsolete numpy RankWarning monkeypatch.
|
|
321
442
|
- mapping and uncertaintymaps optimizations
|
|
322
|
-
|
|
323
|
-
|
|
443
|
+
- Cache city-label collision detection once per event instead of recomputing it for every map.
|
|
444
|
+
- Switch station-marker plotting from per-point ax.plot() calls to batched ax.scatter() (both filled
|
|
324
445
|
and unfilled variants) — fixes a rendering hang as well as performance.
|
|
325
|
-
|
|
446
|
+
- Deduplicate contour-line geometry projection (was projecting the same contours twice, once each for
|
|
326
447
|
the dashed and solid passes).
|
|
327
|
-
|
|
448
|
+
- Skip topography reprojection entirely in draw_uncertainty_map() (result was computed but never used);
|
|
328
449
|
cache the projected topography + hillshade once per event in draw_map() instead of recomputing per IMT.
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
450
|
+
- Add explicit transform=ax.transData to per-map data-image imshow calls to avoid unnecessary Cartopy CRS re-warping.
|
|
451
|
+
- Extend all of the above (basemap raster, collision caching) to uncertaintymaps.py, which hadn't had any of it.
|
|
452
|
+
- Fix xmin/xmax/ymin/ymax not being cast to float in uncertaintymaps.py, causing a TypeError in GeoDict.createDictFromBox.
|
|
332
453
|
|
|
333
454
|
## 1.2.1 / 2026-08-14
|
|
334
455
|
- Add blas_threads and openmp_threads config parameters to model.conf.
|
|
@@ -337,15 +458,15 @@
|
|
|
337
458
|
|
|
338
459
|
## 1.2.0 / 2026-08-10
|
|
339
460
|
- Optimize mapping performance:
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
461
|
+
- Render the static basemap/faults/roads layers once instead of once per IMT map
|
|
462
|
+
- Vectorize the station plotting
|
|
463
|
+
- Deduplicate the contour reprojection
|
|
464
|
+
- Clip faults/roads to the map bounds before handing them to Cartopy
|
|
344
465
|
- Refactor model:
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
466
|
+
- Refactor model.py into a suite of smaller modules.
|
|
467
|
+
- Create unit tests for all of the new modules.
|
|
468
|
+
- Optimize performance of model.
|
|
469
|
+
- Remove max_workers config parameter; add row_block.
|
|
349
470
|
- Make the RNG seed for FFSimmer a function of event ID instead of a constant.
|
|
350
471
|
- Change esi-core>=1.2.8, gmpacket>=0.1.10, and esi-shakelib>=1.2.2 in pyproject.toml.
|
|
351
472
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: shakemap-modules
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.3
|
|
4
4
|
Summary: USGS Earthquake Impact ShakeMap Modules
|
|
5
5
|
Author-email: Bruce Worden <cbworden@contractor.usgs.gov>, Eric Thompson <emthompsone@usgs.gov>, Mike Hearne <mhearne@usgs.gov>
|
|
6
6
|
License-Expression: CC0-1.0
|
|
@@ -8,7 +8,7 @@ Requires-Python: <3.13,>=3.12
|
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
License-File: LICENSE.md
|
|
10
10
|
Requires-Dist: configobj>=5.0.8
|
|
11
|
-
Requires-Dist: esi-shakelib>=1.2.
|
|
11
|
+
Requires-Dist: esi-shakelib>=1.2.6
|
|
12
12
|
Requires-Dist: h5py>=3.8.0
|
|
13
13
|
Requires-Dist: importlib-resources>=6.0.0
|
|
14
14
|
Provides-Extra: assemble
|