Repository for scripts used to extract OD flows from "Mobility of Erasmus+ students in Europe: Geolocated individual and aggregate mobility flows from 2014 to 2022", a data description article published in Scientific Data.
- Erasmus+ official mobility statistics (KA1) for each year between 2014–2022 from Erasmus.
- Local Administrative Units (LAU) for each year between 2014–2022 from GISCO.
- NUTS regional layers for 2013, 2016, and 2021 from GISCO.
pandasgeopandasgeopyshapely
| Step | File | Description | Input | Output |
|---|---|---|---|---|
| 1 | process_and_combine_erasmus_data.py | Reads in the downloaded .xlsx files and combines them | Excel files from Erasmus website | A CSV and a pickled dataframe |
| 2 | geocode_erasmus.py | Geocodes the place names in Erasmus+ data | Pickled dataframe from step 1 | Geopackage of point locations representing origins and destinations of Erasmus+ data |
| 3 | get_NUTS_LAU_codes_to_points.py | Joins NUTS and LAU codes to geocoded placenames | Result geopackage from step 2 and the spatial layers | Geopackage of point locations with their associated regional codes on LAU and NUTS 3 levels |
| 4 | connect_NUTS_LAU_OD.py | Connect geocoded data to original combined data across all spatial layers | Pickle from step 1, geopackage from step 3 | CSVs of mobilities |
| 4.5 | connect_NUTS_LAU_OD_specific.py | Connect geocoded data to original combined data for a specific spatial layer | Pickle from step 1, geopackage from step 3 | CSVs of mobilities |
| 5 | sample_verification.py | Gets the weighted random sample of 1000 for manual verification | CSV from step 4 | An Excel spreadsheet file |
Please use cite the Scientific Data article when you use the spatially enriched student mobility data or these scripts.
@article{Vaisanen2025,
title = {Mobility of Erasmus+ students in Europe: Geolocated individual and aggregate mobility flows from 2014 to 2022},
author = {Väisänen, Tuomas and Malekzadeh, Milad and Inkeröinen, Oula and Järv, Olle},
year = {2025},
journal = {Scientific Data},
volume = {12},
number = {1},
pages = {ZZZZ},
url = {https://doi.org/10.1038/s41597-025-04789-0},
doi = {10.1038/s41597-025-04789-0}
}