A SubsampledSubarray subclass for the case of no standardised interpolation algorithm is not strictly required by cfdm, as it doesn't create SubsampledSubarray subclasses until SubsampledArray.__getitem__ is called, and at that time an exception can be raised.
However, downstream applications may need to instantiate SubsampledSubarray subclasses when their Data object is created, as is the case for cf-python. In this case, the downstream application may need a container for the "no standardised interpolation algorithm" case if it expects to create SubsampledSubarray subclasses prior to SubsampledArray.__getitem__ being called.
To remedy this, I propose:
The need for a new SubsampledSubarray class that handles the case where no standardised interpolation algorithm has been specified (InterpolationSubarray).
When reading files, the need to make sure that coordinate Data is inserted in a construct after any dependent tie points have been set on the data source.Currently cfdm doesn't need to do this, but it doesn't do any harm, and downstream applications (like cf-python) may not be able to correctly instantiate the data when all of its elements have not been set.
A
SubsampledSubarray
subclass for the case of no standardised interpolation algorithm is not strictly required by cfdm, as it doesn't createSubsampledSubarray
subclasses untilSubsampledArray.__getitem__
is called, and at that time an exception can be raised.However, downstream applications may need to instantiate
SubsampledSubarray
subclasses when theirData
object is created, as is the case for cf-python. In this case, the downstream application may need a container for the "no standardised interpolation algorithm" case if it expects to createSubsampledSubarray
subclasses prior toSubsampledArray.__getitem__
being called.To remedy this, I propose:
The need for a new SubsampledSubarray class that handles the case where no standardised interpolation algorithm has been specified (
InterpolationSubarray
).When reading files, the need to make sure that coordinate Data is inserted in a construct after any dependent tie points have been set on the data source.Currently cfdm doesn't need to do this, but it doesn't do any harm, and downstream applications (like cf-python) may not be able to correctly instantiate the data when all of its elements have not been set.