def projection(self, other, scalar=False):
        if self.equals(Vector.zero):
            return S.zero if scalar else Vector.zero

        if scalar:
            return self.dot(other) / self.dot(self)
        else:
            return self.dot(other) / self.dot(self) * self
Mask is blank so results should mask shapes without mask
dataset/ETHPy150Open sympy/sympy/sympy/vector/vector.py/Vector.projection--crossover with--dataset/ETHPy150Open mapbox/rasterio/tests/test_features.py/test_shapes_blank_mask