USACE / go-consequences

A lightweight consequences computational engine written in Go
MIT License
14 stars 10 forks source link

Optimize structure value normalization #75

Closed trietmnj closed 2 years ago

trietmnj commented 2 years ago

https://github.com/USACE/go-consequences/blob/a9f63830065e5150dd88ca01ac554c56607ec0ef/structures/structure.go#L113

This whole calculation is repeated for every frequency, but the value would be the same every time for the same structure. Could be a good place to optimize.

HenryGeorgist commented 2 years ago

we need to consider all uses of go-consequences. Non flood uses like earthquakes which need full valuation, and non frequency based usages. sometimes sacraficing optimization for consistency in approach across a diverse set of stake holders is warrented.

trietmnj commented 2 years ago

what's the driver for earthquake damages? is normalization based on the number of floors on a structure as a proxy for its height a good assumption?

HenryGeorgist commented 2 years ago

it is the only assumption i have right now. once we get the building heights algorithm for the NSI using the 3DEP data, i will be able to drive that with remote sensed data and it will be more reliable.

Shakemap is a driver for earthquake hazards, the drivers for damage are wavelengths and magnitudes and some other parameters, i havent writtten that all yet.

trietmnj commented 2 years ago

The two parts of that question are tied. So the driver (x-axis) of inundation and wave damages is physical depth, of which the domain is compatible with the height of that structure. If we're looking at a different multivariate driver with incompatible domains (x axis limits), then wouldn't this normalization break down?

HenryGeorgist commented 2 years ago

Yes, it will. But no other multivariate driver functions exist for flood at this point. The closest is erosion.

the real problem is that damage functions need to span the height of a structure, but that is not how the egm curves work.

trietmnj commented 2 years ago

This discussion is probably more suited for when we have a comprehensive skeleton of the system and people start to complain that it's running too slowly.

HenryGeorgist commented 2 years ago

agreed