Skip to content

Commit 98dc45b

Browse files
committed
differences for PR #179
1 parent a343097 commit 98dc45b

File tree

9 files changed

+26
-28
lines changed

9 files changed

+26
-28
lines changed

01-intro-raster-data.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ of changes in resolution.
128128
### Raster Data Format for this Workshop
129129

130130
Raster data can come in many different formats. For this workshop, we will use
131-
one of the most common formats for raster data, i.e. the GeoTIFF format, which has the extension `.tif`.
131+
one of the most common formats for raster data, i.e. the GeoTIFF format, which has the extension `.tif`.
132132
A `.tif` file stores metadata or attributes about the file as embedded `tif tags`. For instance, your camera
133133
might store a tag that describes the make and model of the camera or the date
134134
the photo was taken when it saves a `.tif`. A GeoTIFF is a standard `.tif` image
@@ -149,13 +149,13 @@ from a GeoTIFF file.
149149
## More Resources on the `.tif` format
150150

151151
* [GeoTIFF on Wikipedia](https://en.wikipedia.org/wiki/GeoTIFF)
152-
* [OSGEO TIFF documentation](https://trac.osgeo.org/geotiff/)
152+
* [Open Geospatial Consortium (OGC) GeoTIFF standard](https://www.ogc.org/standards/geotiff/)
153153
:::
154154

155155
### Multi-band Raster Data
156156

157157
A raster can contain one or more bands. One type of multi-band raster
158-
dataset that is familiar to many of us is a color image. A basic color
158+
dataset that is familiar to many of us is a color image. A basic color
159159
image often consists of three bands: red, green, and blue (RGB). Each
160160
band represents light reflected from the red, green or blue portions of
161161
the electromagnetic spectrum. The pixel brightness for each band, when

03-crs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ To decide if a projection is right for your data, answer these questions:
9898
* What is the area of minimal distortion?
9999
* What aspect of the data does it preserve?
100100

101-
[Peter Dana from the University of Colorado at Boulder](https://foote.geography.uconn.edu/gcraft/notes/mapproj/mapproj_f.html) and the [Department of Geo-Information Processing](https://kartoweb.itc.nl/geometrics/Map%20projections/mappro.html) have a good discussion of these aspects of projections. Online tools like [Projection Wizard](https://projectionwizard.org/) can also help you discover projections that might be a good fit for your data.
101+
The [Department of Geo-Information Processing](https://kartoweb.itc.nl/geometrics/Map%20projections/mappro.html) has a good discussion of these aspects of projections. Online tools like [Projection Wizard](https://projectionwizard.org/) and the [Worldmapgenerator](https://www.worldmapgenerator.com) can also help you explore projections and discover what might be a good fit for your data.
102102

103103
:::callout
104104
## Data Tip

04-geo-landscape.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ The [Open Source Geospatial Foundation (OSGEO)](https://www.osgeo.org/) supports
2727

2828
* [QGIS](https://www.qgis.org/en/site/) is a professional GIS application that is
2929
built on top of and proud to be itself Free and Open Source Software (FOSS). QGIS is
30-
written in Python and C++, has a python console interface, allows to develop plugins and has several interfaces written in R including
31-
[RQGIS](https://cran.r-project.org/package=RQGIS).
30+
written in Python and C++, has a python console interface and allows one to develop plugins.
3231
* [GRASS GIS](https://grass.osgeo.org/), commonly referred to as GRASS
3332
(Geographic Resources Analysis Support System), is a FOSS-GIS software suite used for
3433
geospatial data management and analysis, image processing, graphics and maps
@@ -66,7 +65,7 @@ The [Open Source Geospatial Foundation (OSGEO)](https://www.osgeo.org/) supports
6665
through their [DevLabs](https://developers.arcgis.com/). ArcGIS software can be
6766
installed using
6867
[Chef Cookbooks from Github](https://github.com/Esri/arcgis-cookbook). In addition, ESRI offers the [ArcPy Python library](https://pro.arcgis.com/en/pro-app/latest/arcpy/get-started/what-is-arcpy-.htm) as part of an ArcGIS Pro licence, allowing to translate operations in the ArcGIS Pro GUI to Python scripts.
69-
* Pitney Bowes produce [MapInfo Professional](https://www.pitneybowes.com/us/location-intelligence/geographic-information-systems/mapinfo-pro.html),
68+
* Precisely produces [MapInfo Professional](https://www.precisely.com/product/precisely-mapinfo/mapinfo-pro), formerly developed by Pitney Bowes Software,
7069
which was one of the earliest desktop GIS programs on the market.
7170
* [Hexagon Geospatial Power Portfolio](https://www.hexagongeospatial.com/products/products)
7271
includes many geospatial tools including ERDAS Imagine, powerful software for remote sensing.
@@ -90,7 +89,6 @@ The [Open Source Geospatial Foundation (OSGEO)](https://www.osgeo.org/) supports
9089
Private companies have released SDK platforms for large scale GIS analysis:
9190

9291
* [Kepler.gl](https://kepler.gl/#/) is Uber's toolkit for handling large datasets (i.e. Uber's data archive).
93-
* [Boundless Geospatial](https://boundlessgeo.com/) is built upon OSGEO software for enterprise solutions.
9492

9593
Publicly funded open-source platforms for large scale GIS analysis:
9694

05-access-data.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ associated to accurate geographic coordinate information.
3232
In this episode we will explore how to access open satellite data using Python. In particular, we will
3333
consider [the Sentinel-2 data collection that is hosted on Amazon Web Services (AWS)](https://registry.opendata.aws/sentinel-2-l2a-cogs).
3434
This dataset consists of multi-band optical images acquired by the constellation of two satellites from
35-
[the Sentinel-2 mission](https://sentinel.esa.int/web/sentinel/missions/sentinel-2) and it is continuously updated with
35+
[the Sentinel-2 mission](https://dataspace.copernicus.eu/data-collections/copernicus-sentinel-data/sentinel-2) and it is continuously updated with
3636
new images.
3737

3838
## Search for satellite imagery

06-raster-intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ rhodes_red_80.plot()
191191
```
192192
![Raster plot 80 x 80 meter resolution with rioxarray](fig/E06/rhodes_red_80_B04.png){alt="raster plot with defualt setting"}
193193

194-
This plot shows the satellite measurement of the band `red` for Rhodes before the wildfire. According to the [Sentinel-2 documentaion](https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/msi-instrument), this is a band with the central wavelength of 665nm. It has a spatial resolution of 10m. Note that the `band=1` in the image title refers to the ordering of all the bands in the `DataArray`, not the Sentinel-2 band number `04` that we saw in the pystac search results.
194+
This plot shows the satellite measurement of the band `red` for Rhodes before the wildfire. According to the [Sentinel-2 documentaion](https://sentiwiki.copernicus.eu/web/s2-mission#S2-Mission-MSI-Instrument), this is a band with the central wavelength of 665nm. It has a spatial resolution of 10m. Note that the `band=1` in the image title refers to the ordering of all the bands in the `DataArray`, not the Sentinel-2 band number `04` that we saw in the pystac search results.
195195

196196

197197
:::callout

08-crop-raster-data.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ In this episode, we will introduce how to crop raster data into the desired area
2424

2525
In this episode, we will work with both raster and vector data.
2626

27-
As *raster data*, we will use satellite images from the search that we have carried out in [the episode: "Access satellite imagery using Python"](05-access-data.md) as well as Digital Elevation Model (DEM) data from the [Copernicus DEM GLO-30 dataset](https://spacedata.copernicus.eu/collections/copernicus-digital-elevation-model).
27+
As *raster data*, we will use satellite images from the search that we have carried out in [the episode: "Access satellite imagery using Python"](05-access-data.md) as well as Digital Elevation Model (DEM) data from the [Copernicus DEM GLO-30 dataset](https://dataspace.copernicus.eu/explore-data/data-collections/copernicus-contributing-missions/collections-description/COP-DEM).
2828

2929
For the satellite images, we have searched for Sentinel-2 scenes of Rhodes from July 1st to August 31st 2023 that have less than 1% cloud coverage. The search resulted in 11 scenes. We focus here on the most recent scene (August 27th), since that would show the situation after the wildfire, and use this as an example to demonstrate raster data cropping.
3030

@@ -169,7 +169,7 @@ visual_clip.plot.imshow()
169169
:::challenge
170170
## Exercise: Clip the red band for Rhodes
171171

172-
Now that you have seen how clip a raster using a polygon, we want you to do this for the red band of the satellite image. Use the shape of Rhodes from GADM and clip the red band with it. Furthermore, make sure to transform the no data values to not-a-number (NaN) values.
172+
Now that you have seen how clip a raster using a polygon, we want you to do this for the red band of the satellite image. Use the shape of Rhodes from GADM and clip the red band with it. Furthermore, make sure to transform the no data values to not-a-number (NaN) values.
173173

174174
::::solution
175175
```python

12-data-cube.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ exercises: 0
55
---
66

77
:::questions
8-
- Can I mosaic tiled raster datasets when my area of interest spans multiple files?
9-
- Can I stack raster datasets that cover the same area along the time dimension in order to explore temporal changes of some quantities?
8+
- Can I mosaic tiled raster datasets when my area of interest spans multiple files?
9+
- Can I stack raster datasets that cover the same area along the time dimension in order to explore temporal changes of some quantities?
1010
:::
1111

1212
:::objectives
@@ -15,9 +15,9 @@ exercises: 0
1515

1616
## Introduction
1717

18-
In the previous episodes we worked with satellite images with a fixed boundary on how they have been collected, however in many cases you would want to have an image that covers your area of interest which often does not align with boundaries of the collected images. If the phenomena you are interested in covers two images you could manually mosaic them, but sometimes you are interested in multiple images that overlapping.
18+
In the previous episodes we worked with satellite images with a fixed boundary on how they have been collected, however in many cases you would want to have an image that covers your area of interest which often does not align with boundaries of the collected images. If the phenomena you are interested in covers two images you could manually mosaic them, but sometimes you are interested in multiple images that overlapping.
1919

20-
ODC-STAC offers functionality that allows you to get a mosaic-ed image based on the a bounding box or a polygon containing the area of interest. In this lesson we show how [odc-stac](https://odc-stac.readthedocs.io/en/latest/?badge=latest) can be employed to re-tile and stack satellite images in what are sometimes referred to as "data cubes".
20+
ODC-STAC offers functionality that allows you to get a mosaic-ed image based on the a bounding box or a polygon containing the area of interest. In this lesson we show how [odc-stac](https://odc-stac.readthedocs.io/en/latest/?badge=latest) can be employed to re-tile and stack satellite images in what are sometimes referred to as "data cubes".
2121

2222
## Create a data cube with ODC-STAC
2323

@@ -97,7 +97,7 @@ Data variables: (12/18)
9797

9898
## Working with the data cube
9999

100-
Like we did in the previous episode, let us calculate the NDVI for our study area. To do so we need to focus on the variables: the red band (`red`), the near infrared band (`nir`) and the scene classification map (`scl`). We will use the former two to calculated the NDVI for the AoI. The latter, we use as [a classification mask](https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-2a/algorithm-overview) provided together with Sentinel-2 L2A products. In this mask, each pixel is classified according to a set of labels (see Figure 3 in [classification mask documentation](https://sentinels.copernicus.eu/web/sentinel/technical-guides/sentinel-2-msi/level-2a/algorithm-overview) ).
100+
Like we did in the previous episode, let us calculate the NDVI for our study area. To do so we need to focus on the variables: the red band (`red`), the near infrared band (`nir`) and the scene classification map (`scl`). We will use the former two to calculated the NDVI for the AoI. The latter, we use as [a classification mask](https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-SceneClassification(SC)S2-Processing-Scene-Classificationtrue) provided together with Sentinel-2 L2A products. In this mask, each pixel is classified according to a set of labels (see Figure 2 in [classification mask documentation](https://sentiwiki.copernicus.eu/web/s2-processing#S2Processing-SceneClassification(SC)S2-Processing-Scene-Classificationtrue)).
101101

102102
First we define the bands that we are interested in:
103103

index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ As a case study for this lesson we will focus on wildfires. According to [the IP
1414

1515
The data used in this lesson includes optical satellite images from [the Copernicus Sentinel-2 mission][sentinel-2] and topographical data from [OpenStreetMap (OSM)][osm]. These datasets are real-world open data sets that entail sufficient complexity to teach many aspects of data analysis and management. The datasets have been selected to allow participants to focus on the core ideas and skills being taught while offering the chance to encounter common challenges with geospatial data. Furthermore, we have selected datasets which are available anywhere on Earth.
1616

17-
During this lesson we will setup an analysis pipeline which identifies scorched areas based on bands of satellite images collected after the disaster in July 2023. Next, we will calculate the [Normalized Difference Vegetation Index (NDVI)](https://en.wikipedia.org/wiki/Normalized_difference_vegetation_index) to assess the vegetation cover of the areas before and after the wildfire. To investigate the affected built-up areas and main roads, we will use OSM vector data and compare them with the previously identified scorched areas.
17+
During this lesson we will setup an analysis pipeline which identifies scorched areas based on bands of satellite images collected after the disaster in July 2023. Next, we will calculate the [Normalized Difference Vegetation Index (NDVI)](https://en.wikipedia.org/wiki/Normalized_difference_vegetation_index) to assess the vegetation cover of the areas before and after the wildfire. To investigate the affected built-up areas and main roads, we will use OSM vector data and compare them with the previously identified scorched areas.
1818

1919
To most effectively use this material, make sure to [download the data](learners/setup.md#data-sets) and follow [the software setup instructions](learners/setup.md#software-setup) before working through the lesson (this especially accounts for learners that follow this lesson in a workshop).
2020

@@ -24,9 +24,9 @@ The main python libraries that are used in this lesson are:
2424

2525
- [geopandas](https://geopandas.org/en/stable/)
2626
- [rioxarray](https://github.com/corteva/rioxarray)
27-
- [xarray-spatial](https://xarray-spatial.org/)
27+
- [xarray-spatial](https://xarray-spatial.readthedocs.io)
2828
- [dask](https://www.dask.org/)
2929
- [pystac-client](https://pystac-client.readthedocs.io/)
3030

31-
[sentinel-2]: https://sentinel.esa.int/web/sentinel/missions/sentinel-2
31+
[sentinel-2]: https://dataspace.copernicus.eu/data-collections/copernicus-sentinel-data/sentinel-2
3232
[osm]: https://www.openstreetmap.org/#map=14/45.2935/18.7986

md5sum.txt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22
"CODE_OF_CONDUCT.md" "c93c83c630db2fe2462240bf72552548" "site/built/CODE_OF_CONDUCT.md" "2023-08-14"
33
"LICENSE.md" "b24ebbb41b14ca25cf6b8216dda83e5f" "site/built/LICENSE.md" "2023-08-14"
44
"config.yaml" "36ecf0d8c86d44ced0b1bd223bc22fe5" "site/built/config.yaml" "2023-11-09"
5-
"index.md" "6a621334a1cd31337234da308537144e" "site/built/index.md" "2025-05-20"
5+
"index.md" "dffb02c53695e0c7bcc239ea49833afc" "site/built/index.md" "2025-09-11"
66
"links.md" "f70df760c54e918207d3fafb9f48e1bf" "site/built/links.md" "2023-08-14"
77
"workshops.md" "0406c702206b0c080de8c4329e5e0738" "site/built/workshops.md" "2025-05-20"
8-
"episodes/01-intro-raster-data.md" "a79603cc941ca89c6cf05b99c1b63ed5" "site/built/01-intro-raster-data.md" "2025-05-20"
8+
"episodes/01-intro-raster-data.md" "a4a64cd0d2dbec992c8591317a0f8e5f" "site/built/01-intro-raster-data.md" "2025-09-11"
99
"episodes/02-intro-vector-data.md" "8eda5808b184fd39286ec503e5c83ed3" "site/built/02-intro-vector-data.md" "2025-05-20"
10-
"episodes/03-crs.md" "6316081421132740abd73827f8fe310a" "site/built/03-crs.md" "2025-05-20"
11-
"episodes/04-geo-landscape.md" "d94461ad1c825a00a6b8628f1deb9d55" "site/built/04-geo-landscape.md" "2025-05-20"
12-
"episodes/05-access-data.md" "7a1f9a42d9944a80c279581555f3bf8c" "site/built/05-access-data.md" "2025-05-20"
13-
"episodes/06-raster-intro.md" "36436ecf0f8ea888f79bc6e38b4d9ac3" "site/built/06-raster-intro.md" "2025-05-20"
10+
"episodes/03-crs.md" "da701bd7f61a26a5e617b80c09d2c621" "site/built/03-crs.md" "2025-09-11"
11+
"episodes/04-geo-landscape.md" "389e4a1251ae837bf6dc9ff7e88238ae" "site/built/04-geo-landscape.md" "2025-09-11"
12+
"episodes/05-access-data.md" "e6f98f2b531e3f63075fcc64dd5d93f6" "site/built/05-access-data.md" "2025-09-11"
13+
"episodes/06-raster-intro.md" "df117e17faa1f9f5149168bb1201f576" "site/built/06-raster-intro.md" "2025-09-11"
1414
"episodes/07-vector-data-in-python.md" "235db0013b1b35708c162086cb404e19" "site/built/07-vector-data-in-python.md" "2025-05-20"
15-
"episodes/08-crop-raster-data.md" "23266a71fb86f0dc1f0e553742af83f0" "site/built/08-crop-raster-data.md" "2025-05-20"
15+
"episodes/08-crop-raster-data.md" "f1bed5014e3601cfb2e2ecaa01fb4215" "site/built/08-crop-raster-data.md" "2025-09-11"
1616
"episodes/09-raster-calculations.md" "f011028f5d2f2bc921596330479afcc5" "site/built/09-raster-calculations.md" "2025-05-20"
1717
"episodes/10-zonal-statistics.md" "6b6ff17570436c41d6e2cb75cdb0ce32" "site/built/10-zonal-statistics.md" "2025-05-20"
1818
"episodes/11-parallel-raster-computations.md" "186a8de9853218472427dc0ec4becde8" "site/built/11-parallel-raster-computations.md" "2025-05-20"
19-
"episodes/12-data-cube.md" "7bfd9da5cb68c620268720c908fbc99f" "site/built/12-data-cube.md" "2025-05-20"
19+
"episodes/12-data-cube.md" "44bd42788ae417837d9ff3973c49e90f" "site/built/12-data-cube.md" "2025-09-11"
2020
"instructors/instructor-notes.md" "1b1cbfc8fff44565421842208ccdab4f" "site/built/instructor-notes.md" "2023-08-14"
2121
"learners/setup.md" "b0415e78f35b460b848b204d7cc30409" "site/built/setup.md" "2025-05-20"
2222
"profiles/learner-profiles.md" "ab92fe3511bf951857b47c0ecbf2ab79" "site/built/learner-profiles.md" "2023-08-14"

0 commit comments

Comments
 (0)