Most of the resampling tools can deal with no data locally. Indeed, most of the resampling tools are working locally in spatial domain...
If we were to briefly resume most common methods we should cite those:
one way to deal correctly with input no data is actually to add more no data to the output... This is to me the only correct way to deal with no data. Every output value that should have been computed from at least one no data per the filter support should itself be tagged a no data value. Of course this could leave us with rather sparse output but these outputs would be correct.
now assuming what we want is not correct outputs but dense one (and it hurts to write it down...) then we can think of many more ways to deal with no data. One could filter them. One could locally cut off its filter support not to take into account no data pixels. But then what happen to the energy of such a filter ? Is it normalized again locally ? Anyhow this makes the filter not the correct one and the output not the correct one either.
When it comes to Sirius and spectral domain it becomes more complicated. If we are to provide only correct output, we cannot try to reproduce what we would do in spatial domain. We are not working locally so we cannot easily avoid the computation of some output pixels for which the computation would have required using no data input values. Moreover, we cannot use an input binary mask to try to figure out to what extent the input no data are spreading away and then tagged to no data all these corrupted pixels in the output data. I mean we can, but because we are using a rather global approach, a no data value will impact much further away from where it originates. And this does not depend on the filter support but on the discontinuity created by the value assigned to no data pixels and the filter use to resample. I'm afraid this method will not leave us with sparse correct outputs but with dense no data values :s
The only way I can think of right now would be to divide the block to resample in recursive manner if it contains no data values. Then, up to a minimal block size the resulting blocks are divided again until they posses no no data value. This way we would only resample blocks without a single no data value. The output would be correct but will be composed of no data "tiles" (the ones we did not process).
Note that the minimal block size will be constrained by the filter size here
Well this is a wide open issue...
Most of the resampling tools can deal with no data locally. Indeed, most of the resampling tools are working locally in spatial domain... If we were to briefly resume most common methods we should cite those:
When it comes to Sirius and spectral domain it becomes more complicated. If we are to provide only correct output, we cannot try to reproduce what we would do in spatial domain. We are not working locally so we cannot easily avoid the computation of some output pixels for which the computation would have required using no data input values. Moreover, we cannot use an input binary mask to try to figure out to what extent the input no data are spreading away and then tagged to no data all these corrupted pixels in the output data. I mean we can, but because we are using a rather global approach, a no data value will impact much further away from where it originates. And this does not depend on the filter support but on the discontinuity created by the value assigned to no data pixels and the filter use to resample. I'm afraid this method will not leave us with sparse correct outputs but with dense no data values :s
The only way I can think of right now would be to divide the block to resample in recursive manner if it contains no data values. Then, up to a minimal block size the resulting blocks are divided again until they posses no no data value. This way we would only resample blocks without a single no data value. The output would be correct but will be composed of no data "tiles" (the ones we did not process). Note that the minimal block size will be constrained by the filter size here