Skip to content

scale kernels with latitude #368

@orianac

Description

@orianac

The burn probability spreading approach operates largely on datasets in a geographic projection. The smoothing kernels both operate on arrays and so are both sized according to number of pixels. This behavior shows up in both the wind spreading section

convolved_mask = cv.filter2D(valid_mask, ddepth=-1, kernel=weights)
and the Gaussian filter section
kwargs={'ksize': (25, 25), 'sigmaX': 0},
are sized according to number of pixels. As a result, filters with the same number of pixels are smaller in actual projected distance toward the north of the domain and larger toward the bottom of the domain. That variation seems tolerable within a single processing unit, but we probably want to update the pixel size of the filter to be latitude-dependent. This is probably best done by calculating a latitude-dependent scaling factor at the top of create_wind_informed_burn_probability which then is used to adjust the Gaussian filter size and passed to apply_wind_directional_convolution to adjust the filters in weights_dict.
Another way of thinking about this issue is that we’re using datasets in geographic projections but calling them 30m, e.g., wind_direction_distribution_30m_4326. We may want to reevaluate that naming convention and/or the way we operate on these datasets as part of addressing this issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions