You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Assignments/00_Getting_Started.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,8 @@
1
-
# 00. A Note on syntax
2
-
Throughout this site, you will see code snippets that are formatted in a specific way. This is done to make it easier to read and understand the code. Some examples include:
3
-
-`# This is a comment`: This is a comment in Python. Comments are used to explain what the code does and are ignored by the Python interpreter. It is good practice to leave useful notes in the code to help others (and yourself) understand what the code does.
4
-
-`[some-reference-here]`: Items in the code surrounded by brackets are cases where you should replace the contents, *including the brackets*, with another value. For example, if you see `[pick-a-name]`, you should replace it with a name of your choice, such as `gis` or `cdp`. The brackets are not part of the code and should not be included in your code.
1
+
# 00. Getting Started
2
+
> ### 00. A Note on syntax
3
+
> Throughout this site, you will see code snippets that are formatted in a specific way. This is done to make it easier to read and understand the code. Some examples include:
4
+
> -`# this is a comment in python`. Similarly, `// this is a comment in javascript`. Comments are used to explain what the code does and are ignored by the Python interpreter. It is good practice to leave useful notes in the code to help others (and yourself) understand what the code does.
5
+
> -`[some-reference-here]`: Items in the code surrounded by brackets are cases where you should replace the contents, *including the brackets*, with another value. For example, if you see `[pick-a-name]`, you should replace it with a name of your choice, such as `gis` or `cdp`. The brackets are not part of the code and should not be included in your code.
Copy file name to clipboardExpand all lines: Assignments/01_Loading_Visualizing.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,4 +2,4 @@
2
2
3
3
Load and visualize a dataset of interest, either from [NYC Open Data](https://opendata.cityofnewyork.us/) or elsewhere. (If you already have an idea of what your final colloquium project topic will be, this would be a good opportunity to get a head start on that).
4
4
5
-
Explore its metadata and attributes, and hone in on one or two attributes in particular of interest. Make map and non-map visualizations that explore these attributes. Provide in-line notes that describe your thought process in choosing which attributes to visualize, and what they mean.**** Provide explanation (numeric, graphical, textual) of what the attribute can and cannot tell us. Save the dataset out to the file format of your choice (but be able to explain why you chose that format).
5
+
Explore its metadata and attributes, and hone in on one or two attributes in particular of interest. Make map and non-map visualizations that explore these attributes. Provide in-line notes that describe your thought process in choosing which attributes to visualize, and what they mean. Provide explanation (numeric, graphical, textual) of what the attribute can and cannot tell us. Save the dataset out to the file format of your choice (but be able to explain why you chose that format).
Copy file name to clipboardExpand all lines: Assignments/04_Networks.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
# 03. Networks
1
+
# 04. Networks
2
2
3
3
Define a network, and calculate the distance between different elements of it. Discuss the experiential differences between Euclidean and network distance for the objects in question. Bonus points (in the form of kudos) for quantitative exploration of the network as described in Xin et al. (2022).
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,4 +11,4 @@ Repository for CDP Mapping Systems summer 2025 course
11
11
12
12
## Getting started
13
13
14
-
Visit the [01. Setting up your environment](Tutorials/00_Getting_Started.md) tutorial notebook to set up your programming environment and get started with the course.
14
+
Visit the [01. Setting up your environment](Assignments/00_Getting_Started.md) tutorial notebook to set up your programming environment and get started with the course.
Copy file name to clipboardExpand all lines: Syllabus/syllabus.md
+72-61Lines changed: 72 additions & 61 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,42 +6,48 @@ Instructor: Mario Giampieri (mag2382@columbia.edu)
6
6
7
7
## Introduction
8
8
9
-
_Mapping Systems_will introduce CDP students to programming concepts and methods for spatial analysis, as well as their role in the production and interpretation of spatial data.
9
+
_Mapping Systems_introduces CDP students to programming concepts and methods for spatial analysis, using urban planning challenges as a basis for learning. The course will also explore the social, political, and ethical implications of mapping technologies, as well as our role as practitioners in the production and interpretation of spatial data.
10
10
11
-
The course will focus on building proficiency in Python-based workflows focused on finding, describing, and visualizing spatial data; manipulating and drawing meaning from data layers; understanding distance and spatial relatedness; and measuring change over time. While a primary goal of this course is to introduce students to practical tools and workflows and build fluency in their use, the course will also introduce students to some historical and conceptual context, as well as case studies.
11
+
The course will focus on building proficiency in Python-based workflows focused on finding, describing, and visualizing spatial data; manipulating and drawing meaning from data layers; understanding distance and spatial relatedness; and measuring change over time. The course will also introduce web-based methods for visualizing and interacting with data. While a primary goal of this course is to introduce students to practical tools and workflows and build fluency in their use, we will maintain a critical perspective and also introduce students to some historical and conceptual context, as well as case studies.
12
12
13
-
The course will require students to complete exercises to gain proficiency in spatial analytic tools in service of being able to use said tools in their computational design practice.
13
+
The course will require students to complete weekly exercises to gain proficiency in spatial analytic methods in service of being able to use said methods in their computational design practice. Students will be asked to further develop one exercise into a final project, described in more detail below.
14
+
15
+
## Final Project
16
+
17
+
The final project will expand upon one of the exercises and further explore the methods and tools used. This may mean conducting a more in-depth analysis of a dataset, applying the methods to a different (and/or multiple) dataset, or extending the functionality of web-based visualizations. You will be asked to diagram your project, write a short description of your goals, and reflect on how you intend to further explore these methods through the following semesters.
14
18
15
19
## Learning Objectives
16
20
17
-
At the most basic level, the goal of this class is to introduce students to mapping in Python and demonstrate how to explore, analyze, and visualize spatial data. By the end of the course, students should be able to:
21
+
At the most basic level, the goal of this class is to introduce students to mapping in Python and Javascript and demonstrate how to explore, analyze, and visualize spatial data. By the end of the course, students should be able to:
18
22
19
-
- Load, explore, and visualize spatial data in Python
23
+
- Load, explore, and visualize spatial data in Python and Javascript
20
24
- Understand and apply basic geoprocessing techniques
21
25
- Measure distance and spatial relatedness
22
-
-Analyze change over time
26
+
-Understand the role of web mapping and APIs in spatial data visualization
23
27
24
28
Furthermore, students should develop a deeper understanding of how spatial data is used in decision-making, and challenges associated with using data to inform arguments (agency in mapping; objective vs subjective / abstract vs experiential).
25
29
30
+
This is primarily a methods course, however students will be expected to complete weekly readings and come prepared to discuss them in class. There are several optional readings listed for each week; it is not expected that students will read all of these, but they are provided for those who wish to explore the topics in more depth.
31
+
26
32
## Course Organization / Communication
27
33
28
-
Class meets on Tuesdays and Thursday in 300 Buell South from 6-8pm. Weeks will generally be organized as follows:
29
-
**Tuesday**: Lecture, reading discussion, review of technical concepts
30
-
**Thursday**: Tutorials, desk crits for exercises and colloquium final project
34
+
Class meets on Tuesdays and Thursdays in 200 Fayerweather from 6-8pm. Weeks will generally be organized as follows:
35
+
-**Tuesday**: Lecture, reading discussion, review of technical concepts
36
+
-**Thursday**: Technical tutorials and desk crits
31
37
32
-
Conversation topics that pertain to the entire class, such as meeting time/location or technical difficulties / troubleshooting can live in the course Discord channel. All other questions can be sent to me directly via email at mag2382@columbia.edu.
38
+
Conversation topics that pertain to the entire class, such as meeting time/location or technical difficulties / troubleshooting should live in the course Discord channel. All other questions can be sent to me directly via email at mag2382@columbia.edu.
33
39
34
-
All slides and tutorials will be posted to the course's [Github repository](https://github.com/mapping-systems/cdp-mapping-systems). All exercises will be saved and managed via Github (details below).
40
+
All reading materials and slides will be posted to Canvas, and tutorials will be posted to the course's [Github repository](https://github.com/mapping-systems/cdp-mapping-systems) (i.e. this website). All exercises will be saved and managed via Github (details below).
35
41
36
42
## Office Hours
37
43
38
-
Office hours are by appointment, and preferable on Tuesday or Thursdays before or after class. Email me to schedule a time to chat.
44
+
Office hours are by appointmenton Fridays, or before class on Tuesday or Thursday. Email me to schedule a time to chat.
39
45
40
46
## Schedule
41
47
42
48
### Week 01
43
49
44
-
Getting started- IDE, environment, loading and visualizing data
50
+
Introductions + getting started: IDE and environment setup, loading and visualizing data
45
51
46
52
#### Class 01: Introductions
47
53
@@ -51,35 +57,36 @@ Getting started- IDE, environment, loading and visualizing data
51
57
- Projections
52
58
- Vector data types
53
59
54
-
**Exercise**[Getting Started](/Assignment_Descriptions/00_Getting_Started.md) (to be completed by next class)
60
+
**Exercise**[Getting Started](../Assignments/00_Getting_Started.md) (to be completed by next class)
55
61
56
62
**Readings**
57
63
58
64
- (optional) Edwards, P.N., 2010. Introduction, in: A Vast Machine: Computer Models, Climate Data, and the Politics of Global Warming. The MIT Press.
59
65
60
66
#### Class 02: Loading, exploring, visualizing data (Tutorial)
61
67
62
-
- Finding open data for NYC
63
-
- Explore spatial and non-spatial attributes of tax lot dataset, MapPLUTO
64
-
- Create static and interactive visualizations of dataset
68
+
-[Tutorial](/Tutorials/01_vector_data_apis.ipynb) on loading, exploring, and visualizing data using `geopandas`, `pandas`, `matplotlib`, `lonboard`, and `folium`
69
+
- Finding open data for New York City
70
+
- Explore spatial and non-spatial attributes of tax lot dataset, `MapPLUTO`
71
+
- Create static and interactive visualizations of the dataset
65
72
- Saving data
66
73
67
-
**Exercise:**[01_Loading and visualizing data](/Assignment_Descriptions/01_Loading_Visualizing.md)
74
+
**Exercise:**[01_Loading and visualizing data](../Assignments/01_Loading_Visualizing.md)
68
75
69
76
### Week 02
70
77
71
-
Geoprocessing / vector data analysis basics using `geopandas`, `pyogrio`, `pandas`, `matplotlib`, and `lonboard`
78
+
Geoprocessing / vector data analysis basics using `geopandas`and `shapely`
72
79
73
-
#### Class 03: Why we map
80
+
#### Class 03: Mapping as a critical and creative process
74
81
75
82
- Mapping as creative process, critical practice, and counter-narrative
76
83
- Case study: Environmental Justice in New York City and New York State
77
84
78
85
**Readings**:
79
86
80
-
- Miller, H.J., 2004. Tobler’s First Law and Spatial Analysis. Annals of the Association of American Geographers 94, 284–289.
81
87
- Iconoclasistas, 2016. Manual of Collective Mapping: Critical cartographic resources for territorial processes of collaborative creation.
82
88
- 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.
89
+
- (Optional) Miller, H.J., 2004. Tobler’s First Law and Spatial Analysis. Annals of the Association of American Geographers 94, 284–289.
83
90
- (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)
84
91
- (optional) Maantay, J., Ziegler, J., 2006. Spatial Data and Basic Mapping Concepts, in: GIS for the Urban Environment.
85
92
- (optional) Corner, J., 2011. The Agency of Mapping: Speculation, Critique and Invention, in: Dodge, M., Kitchin, R., Perkins, C. (Eds.), The Map Reader. Wiley, pp. 89–101. [https://doi.org/10.1002/9780470979587.ch12](https://doi.org/10.1002/9780470979587.ch12)
@@ -88,75 +95,79 @@ Geoprocessing / vector data analysis basics using `geopandas`, `pyogrio`, `panda
88
95
89
96
- Manipulate, reshape, and combine datasets together using spatial and non-spatial characteristics using `geopandas` and `shapely`
Ways to think about and measure distance and spatial relatedness
96
-
97
-
#### Class 05: Distance, Adjacency, Networks
102
+
Web mapping, interactive visualization, and crowd-sourced information
98
103
99
-
- Euclidean and network distance
100
-
- Introduction to graph theory
101
-
- Different kinds of adjacency
102
-
- Case study: CitiBike usage before and during the COVID-19 pandemic
104
+
#### Class 05: Web mapping part 1
103
105
104
-
**Readings**:
106
+
- Introduction to web mapping
107
+
- Web 2.0 and the rise of interactive mapping
108
+
- Web map basic components
105
109
106
-
- Barabási, A.-L., 2016. Graph Theory, in: Network Science. Cambridge University Press, Cambridge, United Kingdom.
107
-
- Xin, R., Ai, T., Ding, L., Zhu, R., Meng, L., 2022. Impact of the COVID-19 pandemic on urban human mobility - A multiscale geospatial network analysis using New York bike-sharing data. Cities 126, 103677. [https://doi.org/10.1016/j.cities.2022.103677](https://doi.org/10.1016/j.cities.2022.103677)
110
+
**Readings**
108
111
109
-
#### Class 06: Measuring Distance (Tutorial)
112
+
- 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], 2010. URL https://onlinelibrary-wiley-com.libproxy.mit.edu/doi/full/10.1111/j.1467-9663.2009.00563.x (accessed 6.15.25).
110
113
111
-
- Introduce `osmnx`, `networkx`, `libpysal`, `h3` to calculate distance from Avery to local points of interest
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
122
+
123
+
APIs and website deployment
124
+
125
+
#### Class 07: Web mapping part 2
126
+
127
+
- Data production and governance
128
+
- Elements of an API
121
129
- Case study: OpenStreetMap and the Humanitarian OpenStreetMap Team
122
-
-Web map basic components
130
+
-**Desk Crits** + checking in
123
131
124
132
**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)
133
+
127
134
- 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
135
+
- (optional) 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)
128
136
129
-
#### Class 08: Web mapping (Tutorial)
130
-
- Use `leafleft`, and `maplibre` to create interactive web maps
#### Class 08: Developing an API and site deployment (Tutorial)
138
+
139
+
-Use `supabase` to create a simple API
140
+
-Deploy a simple website using `github pages`, `cloudflare`, or `render`
141
+
-**Desk crits**
134
142
135
143
### Week 05
136
144
137
-
Raster analysis, STAC specification, change over time
145
+
Conceiving of and measuring distance and spatial relatedness
138
146
139
-
#### Class 09: Measuring Change
147
+
#### Class 09: Distance, Adjacency, Networks
140
148
141
-
-Introduction to raster data
142
-
-Historical context for measuring change over time
143
-
-Case study: National Land Cover Dataset
144
-
-**Desk Crits** + checking in
149
+
-Euclidean and network distance
150
+
-Introduction to graph theory
151
+
-Different kinds of adjacency
152
+
-Case study: CitiBike usage before and during the COVID-19 pandemic
145
153
146
-
**Readings**
154
+
**Readings**:
147
155
148
-
-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)
149
-
-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)
156
+
-Barabási, A.-L., 2016. Graph Theory, in: Network Science. Cambridge University Press, Cambridge, United Kingdom. Available online [here](https://networksciencebook.com/chapter/2)
157
+
-Xin, R., Ai, T., Ding, L., Zhu, R., Meng, L., 2022. Impact of the COVID-19 pandemic on urban human mobility - A multiscale geospatial network analysis using New York bike-sharing data. Cities 126, 103677. [https://doi.org/10.1016/j.cities.2022.103677](https://doi.org/10.1016/j.cities.2022.103677)
150
158
151
-
#### Class 10: Supervised classification using earth observation (EO) data (Tutorial)
159
+
#### Class 10: Measuring Distance (Tutorial)
152
160
153
-
- Use `leafmap`, `rasterio`, `ipyleaflet` to find, download, classify, composite, and analyze raster data
154
-
-**Desk crits**
161
+
- Introduce `osmnx`, `networkx`, `libpysal`, `h3` to calculate distance from Fayerweather to local points of interest
0 commit comments