Skip to content

YXu556/MMNet

Repository files navigation

MMNet

PyTorch implementation of "Integration of Snapshot and Time Series Data for Improving SMAP Soil Moisture Downscaling"

Abstract: Understanding soil moisture (SM) dynamics is crucial for environmental and agricultural applications. While satellite-based SM products provide extensive coverage, their coarse spatial resolution often fails to capture local SM variability. This study presents multi-modal network (MMNet) that integrates snapshot and time series data to downscale Soil Moisture Active Passive (SMAP) Level 4 surface SM. Specifically, the model takes multiple publicly available datasets as input: snapshot data includes optical imagery, Synthetic Aperture Radar (SAR) imagery, terrain attributes, landcover information, and soil properties, and time series data incorporates antecedent weather and land surface temperature (LST) collected over the preceding days. In-situ surface (0-5 cm) SM measurements from the Soil Climate Analysis Network (SCAN) and the United States Climate Reference Network (USCRN) were used as ground truth. We evaluated MMNet under three scenarios: on-site, off-site, and cross-region, and compared its performance with models that utilize either snapshot (Multilayer Perceptron – MLP) or time series (Transformer) data. The results showed that: 1) MMNet trained with on-site data provided accurate SM estimates over time in withheld years; 2) MMNet demonstrated spatial transferability, capturing SM dynamics in regions with sparse or no in-situ measurements; 3) the integration of snapshot and time series data was crucial for maintaining the model’s accuracy and generalizability across diverse scenarios. The downscaled SM maps demonstrated its potential for producing high-resolution temporally and spatially continuous SM estimates, which could further support a broad range of environmental and agricultural applications.

Requirements

  • Pytorch 3.8.12, PyTorch 1.11.0, and more in environment.yml

Usage

Setup conda environment and activate

conda env create -f environment.yml
conda activate py38

1. Data Preparation

  • Download in-situ data: Visit the International Soil Moisture Network (ISMN) and download in-situ SM data for stations and years of your interest.
  • Download input dadasets: Use the provided Google Earth Engine script gee_download.js to export datasets used in this study.
  • Preprocess input datasets: Run the three scripts in the preprocessing/ in order to organize the raw data into model-ready format:
python preprocessing/1. merge_multi_csv.py
python preprocessing/2. data_cleaning.py
python preprocessing/3. make_time_series.py

2. Model Training and Evaluation

  • exp-1: cross year scenario - train on previous 3 years, test on 1 year (It will run iterate through test years from 2019 to 2022)
python train_supervised_ts.py --model mmnet -e 1
  • exp-1: if you want to specify training years
python train_supervised_ts.py --model mmnet -e 1 --target 2019
  • exp-2: 5-fold validation by stations - train on 80% of stations, test on 20%. Results are reported at station-level (mean/median)
python train_supervised_ts.py --model mmnet -e 2
  • exp-3: cross-region scenario - stations are divided into regions (W, M, E), train on two regions, test on the other. Results are reported at station-level.
python train_supervised_ts.py --model mmnet -e 3
  • save test prediction for result visualization
python train_supervised_ts.py --model mmnet -e 3 --save_pred
  • train_supervised_ts.py supports models transformer and mmnet. For MLP results (default exp1, model-MLP):
python train_supervised.py

Results Analysis (Optional)

See results/ for optional post hoc interpretation.

Reference

In case you find MMNet or the code useful, please consider citing our paper using the following BibTex entry:

@article{Xu2025,
  author = {Xu, Y. and Cai, S. and Huang, J. and Liu, J. and Shang, J. and Yang, Z. and Zhang, Z.},
  title = {A Multimodal Deep Learning Approach for Soil Moisture Downscaling Using Remote Sensing and Weather Data},
  journal = {Journal of Geophysical Research: Machine Learning and Computation},
  year = {2025},
  volume = {2},
  number = {3},
  pages = {e2025JH000639},
  doi = {10.1029/2025JH000639},
  url = {https://doi.org/10.1029/2025JH000639}
}

Credits

The in-situ data from SCAN and USCRN can be accessed from the International Soil Moisture Network (ISMN). All used input datasets can be accessed through the Google Earth Engine (GEE) platform:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published