This is the implementation for [SIGSPATIAL 2025] "Unsupervised Urban Land Use Mapping with Street View Contrastive Clustering and a Geographical Prior"
Urban land use classification and mapping are critical for urban planning, resource management, and environmental monitoring. Existing remote sensing techniques often lack precision in complex urban environments due to the absence of ground-level details. Unlike aerial perspectives, street view images provide a ground-level view that captures more human and social activities relevant to land use in complex urban scenes. Existing street view-based methods primarily rely on supervised classification, which is challenged by the scarcity of high-quality labeled data and the difficulty of generalizing across diverse urban landscapes. This study introduces an unsupervised contrastive clustering model for street view images with a built-in geographical prior, to enhance clustering performance. When combined with a simple visual assignment of the clusters, our approach offers a flexible and customizable solution to land use mapping, tailored to the specific needs of urban planners. We experimentally show that our method can generate land use maps from geotagged street view image datasets of two cities. As our methodology relies on the universal spatial coherence of geospatial data (``Tobler's law''), it can be adapted to various settings where street view images are available, to enable scalable, unsupervised land use mapping and updating.
Install the dependencies:
python -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txtThe project configuration is managed through the config/config.yaml file. All parameters for the experiments can be set within this file.
Due to Google streetview policy, only example data is provided in this repository.
- Street View Image Data: Place your Street View Image data in the
data/directory. - Training Data: The training data, which includes the geographical location of the Street View Images and their corresponding filenames, should be placed at
datasets/svi_dataset_example.csv. - Test Data: The test data, which includes land use labels and SVI filenames, should be placed at
datasets/test_dataset_example.csv.
To start training the model, run the following command:
python train.py
Once the training is completed, the trained model will be saved at the path specified by the model_path in the configuration file.
To calculate the Moran's I and plot the corresponding Land Use Map, first update the model_fp in prediction.py to point to the path of the saved model. Then, run the following command:
python prediction.py
Li, Y., Hu, P., Liu, Z., Peng, D., Zhou, J. T., & Peng, X. (2021, May). Contrastive clustering. In Proceedings of the AAAI conference on artificial intelligence (Vol. 35, No. 10, pp. 8547-8555).If you find our work useful or interesting or use our code, please cite our paper as follows
Che, L., Chen, Y., Jin, T., Raubal, M., Schindler, K., & Kiefer, P. (2025). Unsupervised Urban Land Use Mapping with Street View Contrastive Clustering and a Geographical Prior. arXiv preprint arXiv:2504.17551.