Description
Recently, @liberostelios, @Athelena et al published a paper on 3D building metrics. The work is, in principle, expanding what we have in momepy in shape
module. They released the code in the repo (https://github.com/tudelft3d/3d-building-metrics) and I reached out to find out if there is an interest to include their new metrics in momepy here tudelft3d/3d-building-metrics#12.
The plan now is to have a look at the metrics implemented in their paper, compare to the set we have here and add all those that are missing. I think that it all happens in the shape.py module of their repository but please correct me if not.
There are a few things to consider though.
-
We have a new module in pysal/esda implementing shape metrics that are somewhat universal, not focusing necessarily on urban morphology. When I'll have time, momepy will simply import
esda.shape
within theshape
module. That lead to a question whether some of your metrics shouldn't be contributed to esda rather than here. -
This one is more an annoyance than a constraint - I'd like to change the API design from the current class based requiring you to do
momepy.Linearity(gdf).series
to get back an array you are interested. That is a bit annoying in Dask workflows and is overly complicated, so the idea is that we should return either numpy array or a pandas series directly, exactly as you do in your code. So I would probably propose to already follow the new API and not to try to mimic existing one.
TODO: go through the metrics and list those that are not already implemented in momepy.