I have the following data:
Up to 2 images per day (time series from 2015 - 2019 with gaps) for a specific region (AOI - Germany - Hesse) with 2 variables (soil moisture, precipitation).
Out of this data I try to derive soil properties. In theory that's possible because there is a (non-linear) relation between the soil moisture content at the same time for different types of soil. Because of different spatial distribution of rainfall and other climate variables that impact on soil moisture beside soil properties - I decide to generate sequences of drying periods (better comparable than whole time series) short after a rainfall event occurs.
So I have now sequences for soil moisture like:
consecutive_days = [0,1,2,3,4,5,6,7,8] soil_moisture = [0.8, np.nan, 0.7, np.nan, 0.6, 0.5, 0.4, np.nan, 0.2] #or with masking the nan values: consecutive_days = [0,2,4,5,6,8] soil_moisture = [0.8, 0.7, 0.6, 0.5, 0.4, 0.2]
For every location I have now multiple sequences. Because I don't know anything about the number of different soil property classes and their spatial distribution I need to use an unsupervised classification method. Here I get lost. I found this paper. They classify soil properties with a method called SOFM - Self organized Feature Mapping.
I can't find a python module that implement the SOFM algorithm for sequential data like I have.
My goal is to derive a map with possible different soil properties classes.
My question is: What kind of classification method is out there to classify unknown number of classes within sequences derived by time series with the problem that the sequences are not equal. With not equal I mean the third entry in a sequence can refer to the 3 day in the dry period as well as the 6 day when there is a gap in measurements. Also, the sequence length can differ from 2 days to 25 days.
Or is there a better StackExchange to come up with this problem?