Update src/seismic_hazard_forecasting.py

This commit is contained in:
ftong 2025-06-04 17:37:46 +02:00
parent f90fce6f67
commit 70202603c3

View File

@ -500,6 +500,12 @@ verbose: {verbose}")
mode='reflect', anti_aliasing=False) mode='reflect', anti_aliasing=False)
iml_grid_hd[iml_grid_hd == 0.0] = np.nan # change zeroes back to nan iml_grid_hd[iml_grid_hd == 0.0] = np.nan # change zeroes back to nan
# trim edges so the grid is not so blocky
vmin_hd = min(x for x in iml_grid_hd.flatten() if not math.isnan(x))
vmax_hd = max(x for x in iml_grid_hd.flatten() if not math.isnan(x))
trim_thresh = vmin
iml_grid_hd[iml_grid_hd < trim_thresh] = np.nan
# generate image overlay # generate image overlay
north, south = lat.max(), lat.min() # Latitude range north, south = lat.max(), lat.min() # Latitude range
east, west = lon.max(), lon.min() # Longitude range east, west = lon.max(), lon.min() # Longitude range
@ -508,8 +514,10 @@ verbose: {verbose}")
map_center = [np.mean([north, south]), np.mean([east, west])] map_center = [np.mean([north, south]), np.mean([east, west])]
# Create an image from the grid # Create an image from the grid
cmap_name = 'viridis'
cmap = plt.get_cmap(cmap_name)
fig, ax = plt.subplots(figsize=(6, 6)) fig, ax = plt.subplots(figsize=(6, 6))
ax.imshow(iml_grid_hd, origin='lower', cmap='viridis') ax.imshow(iml_grid_hd, origin='lower', cmap=cmap, vmin=vmin, vmax=vmax)
ax.axis('off') ax.axis('off')
# Save the figure # Save the figure
@ -518,7 +526,6 @@ verbose: {verbose}")
plt.close(fig) plt.close(fig)
# Make the color bar # Make the color bar
cmap_name = 'viridis'
width = 50 width = 50
height = 500 height = 500
@ -528,11 +535,11 @@ verbose: {verbose}")
fig, ax = plt.subplots(figsize=((width + 40) / 100.0, (height + 20) / 100.0), fig, ax = plt.subplots(figsize=((width + 40) / 100.0, (height + 20) / 100.0),
dpi=100) # Increase fig size for labels dpi=100) # Increase fig size for labels
ax.imshow(gradient, aspect='auto', cmap=plt.get_cmap(cmap_name), ax.imshow(gradient, aspect='auto', cmap=cmap.reversed(),
extent=[0, 1, vmin, vmax]) # Note: extent order is different for vertical extent=[0, 1, vmin, vmax_hd]) # Note: extent order is different for vertical
ax.set_xticks([]) # Remove x-ticks for vertical colorbar ax.set_xticks([]) # Remove x-ticks for vertical colorbar
num_ticks = 11 # Show more ticks num_ticks = 11 # Show more ticks
tick_positions = np.linspace(vmin, vmax, num_ticks) tick_positions = np.linspace(vmin, vmax_hd, num_ticks)
ax.set_yticks(tick_positions) ax.set_yticks(tick_positions)
ax.set_yticklabels([f"{tick:.2f}" for tick in tick_positions]) # format tick labels ax.set_yticklabels([f"{tick:.2f}" for tick in tick_positions]) # format tick labels
ax.set_title(products[j], pad=15) ax.set_title(products[j], pad=15)