-
Notifications
You must be signed in to change notification settings - Fork 9
Description
Carry forward from the issues at LandscapeGeoinformatics/pydggsapi#67 and sahrk/DGGRID#97.
To generate zones at the refinement level of 18, the parameter clipper_scale_factor of DGGRID has to increase to 100_000_000 to generate the correct number of zones. However, when I pass the setting to those grid_cell_xxx functions in the extra_config parameter, the setting doesn't carry forward to the dggs when invoking the update function.
dggrid4py/dggrid4py/dggrid_runner.py
Lines 1319 to 1323 in dc7bd3a
| tmp_id = uuid.uuid4() | |
| tmp_dir = self.working_dir | |
| dggs = dgselect(dggs_type = dggs_type, res= resolution, mixed_aperture_level=mixed_aperture_level) | |
| dggs.update(**conf_extra, strict=True) | |
dggrid4py/dggrid4py/dggrid_runner.py
Lines 600 to 612 in dc7bd3a
| def update(self, strict=False, **kwargs): | |
| """ | |
| Back propagate keyword parameters if they can be mapped to an attribute handled by this class. | |
| :param strict: | |
| If True, only keys that match existing attributes will be set. | |
| If False, unknown keys will be set with provided name. | |
| """ | |
| for key, value in kwargs.items(): | |
| found = self._resolve_key(key, strict=strict) | |
| if found: | |
| self.set_par(found, value) | |
The issue is that the setting clipper_scale_factor is not defined in the Dggs data class, so when the update is set with strict=True, it will skip the setting.