GeoscienceAustralia / Wind_multipliers

Wind multipliers
GNU General Public License v3.0
8 stars 6 forks source link

Terrain classification style hard coded #5

Open CEKrause opened 7 years ago

CEKrause commented 7 years ago

Terrain multiplier classification assumes that the classified dataset is classified using values between 1 and 15. The code then uses a look up table to convert these classes to a roughness parameter.

If the terrain classification is not exactly as expected, it returns all zeros, and then fails a non-zero check, and passes over the terrain multipliers.

Need to alter the way terrain_class2mz_orig(data): handles the classification data.

CEKrause commented 7 years ago

.csv file that outlines: data classifier, description, roughness length

Read this when needed (point to file in .ini). Calculate the Mz value from the roughness length within the code i.e. not provided.

wcarthur commented 7 years ago

Mz = -0.2827 * np.log(0.4554*np.log(zo) + 3.734) + 1.0762 where zo is the roughness length (metres)

Need to go back and detail the derivation of this relationship

CEKrause commented 7 years ago

Also need to update the test_terrain test once this issue is sorted out.

CEKrause commented 7 years ago

Terrain classification now uses an input csv to define, rather than hard coding. An example "terrain_table" has been added to the repo in input. Need to update documentation (see #8).

wcarthur commented 7 years ago

I've put together a IPython Notebook that details the determination of the relationship from above.

The end values are different, and depend on the chosen nominal height of buildings, for which the terrain multiplier is being determined.

See https://github.com/wcarthur/notebooks/blob/master/Terrain%20multiplier%20values%20from%20surface%20roughness.ipynb

CEKrause commented 7 years ago

Need to account for height within the fit function.