Skip to content

Commit b06289e

Browse files
Jupyter book 2 (#17)
* start updating * wip update to 1 * updates to tuto 01 * update book * baseline interacting with python notebook * add web mapping to syllabus * new action * remove previous action
1 parent d60a5b7 commit b06289e

17 files changed

Lines changed: 1847 additions & 2448 deletions

.github/workflows/deploy.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# This file was created automatically with `myst init --gh-pages` 🪄 💚
2+
# Ensure your GitHub Pages settings for this repository are set to deploy with **GitHub Actions**.
3+
4+
name: MyST GitHub Pages Deploy
5+
on:
6+
push:
7+
# Runs on pushes targeting the default branch
8+
branches: [main, jupyter-book-2]
9+
env:
10+
# `BASE_URL` determines the website is served from, including CSS & JS assets
11+
# You may need to change this to `BASE_URL: ''`
12+
BASE_URL: /${{ github.event.repository.name }}
13+
14+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
15+
permissions:
16+
contents: read
17+
pages: write
18+
id-token: write
19+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
20+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
21+
concurrency:
22+
group: 'pages'
23+
cancel-in-progress: false
24+
jobs:
25+
deploy:
26+
environment:
27+
name: github-pages
28+
url: ${{ steps.deployment.outputs.page_url }}
29+
runs-on: ubuntu-latest
30+
steps:
31+
- uses: actions/checkout@v4
32+
- name: Setup Pages
33+
uses: actions/configure-pages@v3
34+
- uses: actions/setup-node@v4
35+
with:
36+
node-version: 18.x
37+
- name: Install MyST Markdown
38+
run: npm install -g mystmd
39+
- name: Build HTML Assets
40+
run: myst build --html
41+
- name: Upload artifact
42+
uses: actions/upload-pages-artifact@v3
43+
with:
44+
path: './_build/html'
45+
- name: Deploy to GitHub Pages
46+
id: deployment
47+
uses: actions/deploy-pages@v4

.github/workflows/static.yml

Lines changed: 0 additions & 64 deletions
This file was deleted.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ wip/
77
Book/
88
_config.yml
99
_toc.yml
10+
11+
# MyST build outputs
12+
_build

.vscode/settings.json

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
11
{
2-
"markdown-pdf.displayHeaderFooter": false
3-
}
2+
"markdown-pdf.displayHeaderFooter": false,
3+
"jupyter.widgetScriptSources": ["jsdelivr.com", "unpkg.com"],
4+
"[python]": {
5+
"editor.formatOnType": true,
6+
"editor.defaultFormatter": "ms-python.black-formatter",
7+
"editor.formatOnSave": true
8+
},
9+
"black-formatter.showNotifications": "always",
10+
"notebook.formatOnSave.enabled": true,
11+
"notebook.formatOnCellExecution": true,
12+
// this is extra but will help
13+
"notebook.diff.ignoreMetadata": true
14+
}

Assignment_Descriptions/00_Getting_Started.md

Lines changed: 0 additions & 13 deletions
This file was deleted.

README.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# CDP Mapping Systems Summer 2024
1+
# CDP Mapping Systems Summer 2025
22

3-
Repository for CDP Mapping Systems summer 2024 course
3+
Repository for CDP Mapping Systems summer 2025 course
44

55
## Important Links
66

@@ -11,11 +11,4 @@ Repository for CDP Mapping Systems summer 2024 course
1111

1212
## Getting started
1313

14-
1. Install [VSCode](https://code.visualstudio.com/)
15-
2. Join course [Github page](https://github.com/mapping-systems/cdp-mapping-systems) from the invitation email I send. Fork the repository to your account and clone it to your local machine.
16-
3. Create a new Python environment. I recommend using [Conda](https://conda.io/projects/conda/en/latest/user-guide/install/index.html) for this, but you can also use virtualenv. This will protect our system Python installation from any changes we make.
17-
1. If you're using Conda, you can create a new environment with the following command:
18-
```
19-
conda create -n [pick-a-name] python=3.12
20-
```
21-
4. In VSCode, install `Black Formatter`. Using a consistent formatter will help us keep our code clean and readable and reduce minor changes in our commits. We will use `Black` as our default formatter
14+
Visit the [Getting Started](Tutorials/00_Getting_Started.md) tutorial notebook to set up your programming environment and get started with the course.

Syllabus/syllabus.md

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Mapping Systems Summer 2024
1+
# Mapping Systems Summer 2025
22

3-
Tuesday and Thursdays, 6-8pm @ 300 Buell South
3+
Tuesday and Thursdays, 6-8pm @ 209 Fayerweather
44

55
Instructor: Mario Giampieri (mag2382@columbia.edu)
66

@@ -78,6 +78,7 @@ Geoprocessing / vector data analysis basics using `geopandas`, `pyogrio`, `panda
7878
**Readings**:
7979

8080
- Miller, H.J., 2004. Tobler’s First Law and Spatial Analysis. Annals of the Association of American Geographers 94, 284–289.
81+
- Iconoclasistas, 2016. Manual of Collective Mapping: Critical cartographic resources for territorial processes of collaborative creation.
8182
- Wilson, M.O., 2018. The Cartography of W.E.B. Dubois’ Color Line, in: Batlle-Baptiste, W., Rusert, B. (Eds.), WEB Du Bois’s Data Portraits: Visualizing Black America. Princeton Architectural Press.
8283
- (optional) Entrikin, J.N., 1991. The Betweenness of Place, in: Entrikin, J.N. (Ed.), The Betweenness of Place: Towards a Geography of Modernity. Macmillan Education UK, London, pp. 6–26. [https://doi.org/10.1007/978-1-349-21086-2_2](https://doi.org/10.1007/978-1-349-21086-2_2)
8384
- (optional) Maantay, J., Ziegler, J., 2006. Spatial Data and Basic Mapping Concepts, in: GIS for the Urban Environment.
@@ -113,10 +114,29 @@ Ways to think about and measure distance and spatial relatedness
113114
**Exercise:** [03_Networks](/Assignment_Descriptions/03_Networks.md)
114115

115116
### Week 04
117+
Web mapping, interactive visualization, and crowd-sourced information
118+
#### Class 07: Web mapping
119+
- Introduction to web mapping
120+
- Web 2.0 and the rise of interactive mapping
121+
- Case study: OpenStreetMap and the Humanitarian OpenStreetMap Team
122+
- Web map basic components
123+
124+
**Readings**
125+
- NEOGEOGRAPHY AND` THE PALIMPSESTS OF PLACE: WEB 2.0 AND THE CONSTRUCTION OF A VIRTUAL EARTH - GRAHAM - 2010 - Tijdschrift voor Economische en Sociale Geografie - Wiley Online Library [WWW Document], n.d. URL https://onlinelibrary-wiley-com.libproxy.mit.edu/doi/full/10.1111/j.1467-9663.2009.00563.x (accessed 6.15.25).
126+
- Haklay, M., Weber, P., 2008. OpenStreetMap: User-generated street maps. IEEE Pervasive Computing 7, 12–18. [https://doi.org/10.1109/MPRV.2008.80](https://doi.org/10.1109/MPRV.2008.80)
127+
- Schröder-Bergen, S., Glasze, G., Michel, B., Dammann, F., 2022. De/colonizing OpenStreetMap? Local mappers, humanitarian and commercial actors and the changing modes of collaborative mapping. GeoJournal 87, 5051–5066. https://doi.org/10.1007/s10708-021-10547-7
128+
129+
#### Class 08: Web mapping (Tutorial)
130+
- Use `leafmap`, `ipyleaflet`, and `folium` to create interactive web maps
131+
- Loading data via API
132+
- Launching a basic web map
133+
**Exercise:** [04_Web Mapping](/Assignment_Descriptions/04_Web_Mapping.md)
134+
135+
### Week 05
116136

117137
Raster analysis, STAC specification, change over time
118138

119-
#### Class 07: Measuring Change
139+
#### Class 09: Measuring Change
120140

121141
- Introduction to raster data
122142
- Historical context for measuring change over time
@@ -128,21 +148,11 @@ Raster analysis, STAC specification, change over time
128148
- Couclelis, H., 1992. People manipulate objects (but cultivate fields): Beyond the raster-vector debate in GIS, in: Frank, A.U., Campari, I., Formentini, U. (Eds.), Theories and Methods of Spatio-Temporal Reasoning in Geographic Space, Lecture Notes in Computer Science. Springer Berlin Heidelberg, Berlin, Heidelberg, pp. 65–77. [https://doi.org/10.1007/3-540-55966-3_3](https://doi.org/10.1007/3-540-55966-3_3)
129149
- Homer, C., Dewitz, J., Jin, S., Xian, G., Costello, C., Danielson, P., Gass, L., Funk, M., Wickham, J., Stehman, S., Auch, R., Riitters, K., 2020. Conterminous United States land cover change patterns 2001–2016 from the 2016 National Land Cover Database. ISPRS Journal of Photogrammetry and Remote Sensing 162, 184–199. [https://doi.org/10.1016/j.isprsjprs.2020.02.019](https://doi.org/10.1016/j.isprsjprs.2020.02.019)
130150

131-
#### Class 08: Supervised classification using earth observation (EO) data (Tutorial)
151+
#### Class 10: Supervised classification using earth observation (EO) data (Tutorial)
132152

133153
- Use `leafmap`, `rasterio`, `ipyleaflet` to find, download, classify, composite, and analyze raster data
134154
- **Desk crits**
135155

136-
### Week 05
137-
138-
Wrapping up + developing future practice
139-
140-
#### Class 09: Wrapping up + Looking Forward
141-
142-
- Additional workshop on advanced topic or guest lecture (TBD based on class interest)
143-
144-
#### Class 10: Desk crits / work session
145-
146156
### Week 06
147157

148158
Preparing for final colloquium presentations + presentations on August 14th

Tutorials/00_Getting_Started.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Getting started
2+
3+
1. Install [VSCode](https://code.visualstudio.com/)
4+
2. Create a new Python environment. I *strongly* recommend using [Conda](https://conda.io/projects/conda/en/latest/user-guide/install/index.html) for this, but you can also use virtualenv. This will protect our system Python installation from any changes we make.
5+
- If you're using Conda, you can create a new environment with the following command (with no brackets around the name). You could choose a name like `gis` or `cdp` for example:
6+
```
7+
conda create -n [pick-a-name] python=3.12
8+
```
9+
Be sure to replace `[pick-a-name]` with a name of your choice for the environment. You can activate the environment (with no brackets around the name) with:
10+
```
11+
conda activate [pick-a-name]
12+
```
13+
It is important to do this step before installing any packages, as it ensures that all packages are installed in the new environment rather than the system Python installation.
14+
3. Install the required packages for the course. You can do this by running:
15+
```
16+
pip install -r requirements.txt
17+
```
18+
This will install all the packages listed in the `requirements.txt` file, which includes all the packages we will use in the course. If you open that file, you will see package names and the versions that we will use. This ensures that everyone is using the same versions of the packages, which helps avoid compatibility issues. (This is a primary reason to use a virtual environment, as packages change over time and we want to avoid breaking changes.)
19+
20+
4. In VSCode, install `Ruff`. Ruff is a linter that will help us catch errors in our code and enforce coding standards. It is a fast and efficient linter that works well with Python. You can install it by searching for "Ruff" in the VSCode extensions marketplace.
21+
5. In VSCode, install `Black Formatter`. Using a consistent formatter will help us keep our code clean and readable and reduce minor changes in our commits. We will use `Black` as our default formatter. You can install it by searching for "Black Formatter" in the VSCode extensions marketplace.
22+
6. Make sure that your vscode settings are set to use `Black` as the default formatter. You can do this by adding the following lines to your `settings.json` file:
23+
```json
24+
"[python]": {
25+
"editor.formatOnType": true,
26+
"editor.defaultFormatter": "ms-python.black-formatter",
27+
"editor.formatOnSave": true
28+
},
29+
"[jupyter]": {
30+
"editor.defaultFormatter": "ms-python.black-formatter"
31+
},
32+
"notebook.lineNumbers": "on",
33+
"ruff.importStrategy": "useBundled",
34+
"black-formatter.importStrategy": "fromEnvironment",
35+
"notebook.formatOnSave.enabled": true,
36+
"black-formatter.showNotifications": "always",
37+
"notebook.formatOnCellExecution": true,
38+
"notebook.diff.ignoreMetadata": true,
39+
```
40+
This will ensure that your code is automatically formatted with `Black` when you save it, and that `Ruff` is used for linting.

0 commit comments

Comments
 (0)