.. |github-icon| replace:: 🐙

.. figure:: img/GeoAI_Banner_t.png

**Hands-on Geographical Artificial Intelligence (GeoAI)** introduces you to the foundational approaches and methods of machine learning and artificial intelligence applied to spatial data. Featuring new material and a technical ecosystem for modern spatial data science, this course covers everything from basic machine learning (ML) to deep learning (DL), foundation models, and AI ethics.

This is a new, jointly developed course held collaboratively by the **Department of Built Environment, Aalto University, Finland** and the **Institute of Geodesy (Working Group Geoinformation), TU Graz, Austria**. 

.. admonition:: Course IDs & Credits

    | **ECTS Credits:** 3
    | **TU Graz Students:** Selected Topics of Goespatial Technologies (Hands-on Geographical Artificial Intelligence). Course Number ``GST.416UF``.
    | **Aalto University Students:** Special course on Geoinformatics under the Master's Programme of Geoinformatics. Course code: ``GIS-E6020``.

.. important:: Duration and registration

    | Notice that the **course runs from 16.3. to 19.5.2026 (8 sessions)**.
    | **Registration deadline Aalto:** 12th March 2026 via `this form <https://forms.gle/rgCkE3tTLuc2PW9p6>`__.  
    | **Registration deadline TU Graz:** 20th March 2026 via `TUGRAZ-online <https://online.tugraz.at/tug_online/ee/ui/ca2/app/desktop/#/slc.tm.cp/student/courses/576621>`__.  
    | Teaching sessions for **Aalto University students** are held in **Otakaari 4, Espoo, Finland**.  
    | Teaching sessions for **TU Graz students** are held in **room A306, Steyrergasse 30/III, 8010 Graz, Austria**.  

    **Aalto students:** If you still need to build your Python and GIS foundations, consider taking the
    *Geo-Python* and *Automating GIS-processes* courses (5 ECTS each) before this course —
    see `geo-python.github.io <http://geo-python.github.io/>`__ and `autogis.github.io <https://autogis.github.io/>`__.

Learning objectives
-------------------

After completing this course, you should be able to:

- **Explain and apply** machine learning and deep learning algorithms to geospatial data analysis problems
- **Process and analyze** geospatial imagery using AI-based computer vision methods
- **Use and evaluate** Large Language Models (LLMs) and Foundation Models for geospatial tasks
- **Identify and address** geospatial bias, fairness, and representativeness issues in AI systems *(AI Ethics)*
- **Apply and critically assess** state-of-the-art GeoAI methods in real-world scenarios

Prerequisites (Noncompulsory)
-----------------------------

Before taking this course, you should have:

1. **Experience with Python programming for GIS**
2. **Fundamental knowledge of Spatial Data Science**

**Python & GIS basics refresher:** If you need to refresh your skills, we strongly recommend going through the open online book
`Introduction to Python for Geographic Data Analysis <https://pythongis.org/>`__ by Tenkanen, Heikinheimo & Whipp (2025).

Supporting material
-------------------

**Course Specific Reading:**
For the introductory sessions, the following existing materials are highly recommended:

- `Git Basics Tutorial <https://sustainability-gis.readthedocs.io/en/latest/tutorials/git-basics.html>`__

.. admonition:: Help improving the materials

    **This is a new joint course.**

    As a fast-evolving domain, the content of the course is likely to change and improve. By being a fully open
    educational resource, **you can also help making the course better**.
    If you find any errors, typos, or other problems, please help by suggesting an edit on GitHub.
    You can do this easily by clicking ``suggest edit`` under the |github-icon| **GitHub** icon located at the top-right of each page.

Course format & Ecosystem
-------------------------

Course exercises require programming in the Python language.
The course consists of combined Lecture/Practical sessions in which concepts are introduced and then immediately applied to real-world geospatial datasets.

The main tools and services we will use on this course include:

- **GitHub Classroom:** Used for hosting online lecture and practical materials.
- **Supercomputer:** Students will have access to the Finnish CSC supercomputer for training models and running inference.

**Assessment / Grading:**
The final grade is based on practical assignments:

- 2 Individual Assignments
- 1 Collaborative Group Project (executed in mixed teams of students from both TU Graz and Aalto University)

Grading is based on the total points earned across all assignments. Note that grading schemes differ slightly between Aalto University (first table) and TU Graz (second table):

.. list-table::
    :widths: 1 2 2
    :header-rows: 1

    * - Aalto Grade
      - Points required
      - Description
    * - 5 (excellent)
      - ≥ 90 %
      - Outstanding performance
    * - 4
      - 80 – 89 %
      - Very good performance
    * - 3
      - 70 – 79 %
      - Good performance
    * - 2
      - 60 – 69 %
      - Satisfactory performance
    * - 1 (pass)
      - 50 – 59 %
      - Adequate performance
    * - 0 (fail)
      - < 50 %
      - Insufficient performance

.. list-table::
    :widths: 1 2 2
    :header-rows: 1

    * - TUG Grade
      - Points required
      - Description
    * - 1 (excellent)
      - ≥ 90 %
      - Outstanding performance
    * - 2 (good)
      - 75 – 89 %
      - Very good performance
    * - 3 (satisfactory)
      - 60 – 74 %
      - Good performance
    * - 4 (sufficient)
      - 50 – 59 %
      - Adequate performance
    * - 5 (unsatisfactory)
      - < 50 %
      - Insufficient performance

Program
-------

The course includes 8 teaching sessions running between March 16th and May 19th, 2026. Topics for each week are listed below:

+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| Date   | Graz       | Helsinki    | Lecture                              | Practical                         | Lecturer         |
+========+============+=============+======================================+===================================+==================+
| 16.03. | 09:00-12:00| 10:00-13:00 | | L0: Course Overview                | P1: Introduction into Practicals  | Ivan Majic       |
|        |            |             | | L1: Introduction into GeoAI        |                                   |                  |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 23.03. | 09:00-12:00| 10:00-13:00 | L2: Machine Learning Basics          | P2: Machine Learning Practical    | Subhrashanka Dey |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 14.04. | 13:00-16:00| 14:00-17:00 | L3: Deep Learning                    | P3: Deep Learning Practical       | Ivan Majic       |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 21.04. | 13:00-16:00| 14:00-17:00 | L4: GeoAI in image processing        | P4: GeoAI in image processing     | Ivan Majic       |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 28.04. | 13:00-16:00| 14:00-17:00 | L5: Advanced aspects of GeoAI        | P5: Project topics discussion     | Ivan Majic       |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 05.05. | 13:00-16:00| 14:00-17:00 | L6: LLMs and foundation models       | P6: Using LLMs for GIScience      | Farzad Shami     |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 12.05. | 13:00-16:00| 14:00-17:00 | L7: GeoAI applications and roadmap   | P7: Project Q&A                   | TUG + Aalto      |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+
| 19.05. | 13:00-16:00| 14:00-17:00 | Group project presentations          |                                   |                  |
+--------+------------+-------------+--------------------------------------+-----------------------------------+------------------+


Contents
--------

.. toctree::
    :maxdepth: 1
    :caption: Course information

    course-info/course-info
    .. course-info/learning-goals
    .. course-info/grading
    course-info/course-environment-components
    course-info/slack-usage
    course-info/License-terms
    course-info/attribution
    course-info/resources
    course-info/installing-miniconda

.. toctree::
    :maxdepth: 1
    :caption: Exercises

    .. exercises/exercise-1
    .. exercises/exercise-2
    .. exercises/exercise-4_to_del.ipynb	

.. toctree::
    :maxdepth: 1
    :caption: Tutorials

    tutorials/git-basics
    tutorials/Python_and_Jupyter_Notebook.ipynb
    tutorials/L2-BasicML-Tutorial-1-Classification.ipynb
    tutorials/L2-BasicML-Tutorial-2-Regression.ipynb
    tutorials/L3-Deep-Learning-Tutorial.ipynb
    tutorials/L4_1-EUROSAT.ipynb
    tutorials/L4_2-PoolDetection.ipynb
    tutorials/01a_geoai.ipynb
    tutorials/02a_geoai.ipynb
    tutorials/02b_geoai-solutions.ipynb
    source/tutorials/tiles.zip
    .. tutorials/intro-to-python-geostack.ipynb
    .. tutorials/L2-T1-Notebook1-Vienna-Airbnb-Classification.ipynb
    .. tutorials/spatial_network_analysis.ipynb

.. toctree::
    :maxdepth: 1
    :caption: Week 1
	
    lessons/L1/GeoAI_course_overview.rst
    lessons/L1/Introduction_to_GeoAI.rst
    lessons/L1/practical_1.rst

.. toctree::
    :maxdepth: 1
    :caption: Week 2

    lessons/L2/L2-Machine-Learning-Basics-part1
    lessons/L2/L2-Machine-Learning-Basics-part2

.. toctree::
    :maxdepth: 1
    :caption: Week 3

    lessons/L3/L3-Deep-Learning

.. toctree::
    :maxdepth: 1
    :caption: Week 4

    lessons/L4/L4-GeoAI-Image_Processing

.. toctree::
    :maxdepth: 1
    :caption: Week 5

    lessons/L5/L5-Advanced_aspects_of_GeoAI

.. toctree::
    :maxdepth: 1
    :caption: Week 6

    lessons/L6/L6-LLMs_and_Foundation_Models

.. toctree::
    :maxdepth: 1
    :caption: Week 7

    lessons/L7/L7-GeoAI_Applications_and_Research
