snowman: an open-source R package for automated 30-m snow and ice cover mapping using the Landsat archive
Abstract. Seasonal snow and ice cover are critical components of the cryosphere yet mapping their dynamics at ecologically relevant spatiotemporal scales remains challenging. Here I present snowman, an open-source R package and algorithm for automated mapping of snow and ice cover dynamics at 30-m resolution using Landsat satellite imagery (1982–present). The algorithm combines globally trained probabilistic Random Forest classifiers with pixel-wise generalised additive models to estimate snow phenology metrics—including snow cover duration, snowmelt timing, and new-snow onset—across any location on Earth, without requiring specialist expertise in remote sensing. Trained on 691,925 manually labelled points from 529 Landsat scenes across 49 globally distributed sites, the classifier achieved an overall accuracy of 96.3 % on an independent 15,000-point test dataset, compared to 80.0 % for traditional normalised difference snow index-based (NDSI) approaches. Critically, snowman retained up to 2.2 times more usable observations than NDSI methods across a cloud-prone mountain landscape, enabling more detailed estimation of the snow dynamics. At two Finnish weather stations, snowman estimated snow cover duration, snowmelt timing, and new-snow onset to within 3–11 days of multi-year station records. Snow phenology maps showed strong spatial correspondence with independent fine-scale satellite-borne snow classifications (Pearson r = 0.79–0.83) and a high-resolution microclimate dataset (r = 0.82). The snowman algorithm is fully automated and scalable from personal computers to high-performance computing environments and offers a reproducible tool for snow and ice monitoring in climate science, hydrology, and ecological research.
I took time to carefully read this manuscript. It presents snowman, an open-source R package for automated 30 m snow and ice cover mapping using the Landsat archive. I find the paper very interesting and potentially valuable for the community. It provides a practical tool for users who want to exploit Landsat for snow applications without relying on Google Earth Engine, and it makes the approach accessible to R users. The use of a probabilistic Random Forest classifier is also a valuable alternative to more traditional NDSI-based workflows.
However, I think the manuscript currently overstates the novelty and generality of the approach. In several respects, and specifically for snow phenology metrics, the proposed workflow is close to recent Landsat-based snow phenology approaches, which derived long-term 30 m snow melt-out dates from Landsat time series and explicitly analysed NDSI thresholds and sensitivity to observation number (see references below). The present manuscript is interesting, because the method is different, open-source in R, and relies on Random Forest classifier rather than direct NDSI values, and so it will be a valuable contribution for the community without any doubt.
I strongly recommend improving the integration of recent remote-sensing snow-mapping literature, clarifying the multi-year nature of the method, justifying the many thresholds used in the workflow, and better demonstrating performance across the full Landsat archive, including the earlier decades.
The abstract currently overstates what the algorithm seems to be capable of, or at least what has been demonstrated. In particular, the manuscript does not demonstrate that the algorithm can derive 30 m snow dynamics from 1982 to the present in the sense of year-to-year estimates. The current wording could lead readers to think that the method provides annual snow dynamics across the full Landsat archive, whereas the workflow appears mainly designed to estimate multi-year average snow phenology metrics. This should be clarified in the abstract and introduction. Beyond that, here are major and minor comments.
Major comments
Minor comments :
L90. I agree that Landsat has historically been underutilized in snow research compared with MODIS or Sentinel-2. However, this statement should be nuanced, because Landsat-based snow-cover and snow-phenology studies are becoming increasingly common, including several very recent examples that are directly relevant to the present manuscript.
L105. You state that the spatiotemporal sparsity of Landsat data makes it difficult to estimate “snow dynamics” over a single year. Could you clarify what you mean by “snow dynamics” here? This term could refer either to continuous snow-cover changes through time or to derived snow phenology indicators such as snow cover duration, snow melt-out date, and new-snow onset.
Predictor variables. The set of predictor variables is very well constructed and interesting. Well done for that. Still, I’m not sure I understand why you used a land cover classification as a predictor for a land cover classification. This land cover map is static, so I do not see how it could be relevant for Landsat images acquired far from the date of the land cover product, especially for the earliest decades of the Landsat archive. Please clarify the rationale for including this predictor, and ideally show whether it improves the classification results.
L264. 50 Landsat images over what ? The temporal window asked by the user ? The AOI ? Both ?
L273. I’m not sure to understand what you mean by “the class probability is utilized as the weight of the observations in the subsequent models”. Which class are you talking about ? What does “weight of the observations” means ?
L286. “At least 20 observations”. Over what period ? It’s not clear to me if the algorithm always works on a “day of year” basis, on which you decide how many years are aggregated to compose the initial time series, or if it will compute the snow dynamic metrics on a yearly basis if you ask for multiple years. In many mountains of the world, it’s rare to have 20 clear sky observations over a single year, so it basically mean that your algorithm is not suited for year to year estimates of snow dynamics over the four decades. It might work for the most recent one, but hardly before 2013. Plus, having 20 observations throughout the year don’t say much about the number of observations at the most critical moment, snow onset and snow melt-out. It’s not an issue if the algorithm have these limitations, but it should be stated and discussed more thoroughly in the abstract, introduction and discussion.
L358. See https://www.nature.com/articles/s41597-025-05044-2 for more information on the best NDSI threshold for Landsat surface reflectance product which is found to be around 0.15 instead of 0.4.
L517. For snow dynamic indicators, I am not fully convinced that the Random Forest approach is necessarily better than a simple NDSI-based metric. For snow melt-out date, you use a probability threshold of 0.5 to determine the date, which is still a form of binarization, as can also be done with NDSI. If snow probability is intended to mimic snow cover fraction, then this is conceptually similar to applying a threshold to NDSI to estimate melt-out timing. The difference is that, for NDSI, several studies have examined its relationship with snow cover fraction or snow depth, which helps interpret what the detected melt-out date represents. In your case, what does a snow probability threshold of 0.5 mean in terms of snow fraction, snow depth, or surface condition? More generally, if a simple method based on well-understood spectral properties of snow works reasonably well, what is the added value of a more complex and partly black-box Random Forest algorithm?
L535. This limitation should be acknowledged earlier in the paper.
References :
https://www.nature.com/articles/s41597-025-05044-2
https://tc.copernicus.org/articles/19/2407/2025/
https://www.nature.com/articles/s41597-025-04961-6