Skip to content

Commit c2290b7

Browse files
authored
Merge pull request planetlabs#218 from planetlabs/level_up_repo
Level up repo
2 parents 665f165 + ee6c2ee commit c2290b7

File tree

11 files changed

+2349
-0
lines changed

11 files changed

+2349
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"Download a zip file of all the data you will need here: \n",
8+
"https://hello.planet.com/data/s/Y2wFKNFNTwHxot8"
9+
]
10+
},
11+
{
12+
"cell_type": "markdown",
13+
"metadata": {},
14+
"source": [
15+
"Note: This data download may take some time. Please start this download at least 1 hour prior to the tutorial."
16+
]
17+
}
18+
],
19+
"metadata": {
20+
"kernelspec": {
21+
"display_name": "Python 3 (ipykernel)",
22+
"language": "python",
23+
"name": "python3"
24+
},
25+
"language_info": {
26+
"codemirror_mode": {
27+
"name": "ipython",
28+
"version": 3
29+
},
30+
"file_extension": ".py",
31+
"mimetype": "text/x-python",
32+
"name": "python",
33+
"nbconvert_exporter": "python",
34+
"pygments_lexer": "ipython3",
35+
"version": "3.8.13"
36+
}
37+
},
38+
"nbformat": 4,
39+
"nbformat_minor": 2
40+
}
Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "markdown",
5+
"metadata": {},
6+
"source": [
7+
"# Reading satellite data with rasterio"
8+
]
9+
},
10+
{
11+
"cell_type": "markdown",
12+
"metadata": {},
13+
"source": [
14+
"[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/planetlabs/notebooks/blob/master/jupyter-notebooks/sdsc-2022-workshop/1_rasterio_firstlook.ipynb)"
15+
]
16+
},
17+
{
18+
"cell_type": "markdown",
19+
"metadata": {},
20+
"source": [
21+
"For these examples, we will be using an image of Houston flooded during Hurrican Harvey in August of 2017. \n",
22+
"\n",
23+
"Did You Know: This imagery was released during the immediate days following the hurricane, and first responders on the ground used it to help plan & facilitate rescuing people stuck in flooded neighborhoods."
24+
]
25+
},
26+
{
27+
"cell_type": "markdown",
28+
"metadata": {},
29+
"source": [
30+
"You can download the image here: https://storage.googleapis.com/pdd-stac/disasters/hurricane-harvey/0831/20170831_172754_101c_3B_AnalyticMS.tif"
31+
]
32+
},
33+
{
34+
"cell_type": "markdown",
35+
"metadata": {},
36+
"source": [
37+
"# Preparing Your Workspace"
38+
]
39+
},
40+
{
41+
"cell_type": "markdown",
42+
"metadata": {},
43+
"source": [
44+
"## Option 1: (recommended) Run in Google Colab"
45+
]
46+
},
47+
{
48+
"cell_type": "markdown",
49+
"metadata": {},
50+
"source": [
51+
"[Open this Notebook in Colab](https://colab.research.google.com/github/planetlabs/notebooks/blob/master/jupyter-notebooks/sdsc-2022-workshop/1_rasterio_firstlook.ipynb), then run the following:"
52+
]
53+
},
54+
{
55+
"cell_type": "code",
56+
"execution_count": null,
57+
"metadata": {},
58+
"outputs": [],
59+
"source": [
60+
"!pip install rasterio\n",
61+
"!wget https://storage.googleapis.com/pdd-stac/disasters/hurricane-harvey/0831/20170831_172754_101c_3B_AnalyticMS.tif\n",
62+
"!wget https://storage.googleapis.com/pdd-stac/disasters/hurricane-harvey/0831/20170831_172754_101c_3b_Visual.tif"
63+
]
64+
},
65+
{
66+
"cell_type": "markdown",
67+
"metadata": {},
68+
"source": [
69+
"## Option 2: Run local Jupyter instance"
70+
]
71+
},
72+
{
73+
"cell_type": "markdown",
74+
"metadata": {},
75+
"source": [
76+
"You can also choose to open this Notebook in your own local Jupyter instance."
77+
]
78+
},
79+
{
80+
"cell_type": "markdown",
81+
"metadata": {},
82+
"source": [
83+
"**Prerequisites**\n",
84+
"- Install: [rasterio](https://pypi.org/project/rasterio) library\n",
85+
"- Download example data: [20170831_172754_101c_3B_AnalyticMS.tif](https://storage.googleapis.com/pdd-stac/disasters/hurricane-harvey/0831/20170831_172754_101c_3B_AnalyticMS.tif) & [20170831_172754_101c_3b_Visual.tif](https://storage.googleapis.com/pdd-stac/disasters/hurricane-harvey/0831/20170831_172754_101c_3b_Visual.tif)\n",
86+
"- Download tutorial data: [Tutorial Data](http://go.planet.com/scipy2022repo)"
87+
]
88+
},
89+
{
90+
"cell_type": "markdown",
91+
"metadata": {},
92+
"source": [
93+
"## Loading a dataset"
94+
]
95+
},
96+
{
97+
"cell_type": "code",
98+
"execution_count": null,
99+
"metadata": {},
100+
"outputs": [],
101+
"source": [
102+
"# Let's import Rasterio\n",
103+
"import rasterio"
104+
]
105+
},
106+
{
107+
"cell_type": "code",
108+
"execution_count": null,
109+
"metadata": {},
110+
"outputs": [],
111+
"source": [
112+
"# This notebook explores a single 4 band (blue, green, red, NIR) PlanetScope scene in a UTM projection.\n",
113+
"image_file = \"/content/20170831_172754_101c_3b_Visual.tif\""
114+
]
115+
},
116+
{
117+
"cell_type": "code",
118+
"execution_count": null,
119+
"metadata": {},
120+
"outputs": [],
121+
"source": [
122+
"satdat = rasterio.open(image_file)\n",
123+
"\n",
124+
"# satdat is our open dataset object\n",
125+
"print(satdat)"
126+
]
127+
},
128+
{
129+
"cell_type": "code",
130+
"execution_count": null,
131+
"metadata": {},
132+
"outputs": [],
133+
"source": [
134+
"# let's look at some basic information about this geoTIFF:\n",
135+
"\n",
136+
"# dataset name\n",
137+
"print(satdat.name)\n",
138+
"\n",
139+
"# number of bands in this dataset\n",
140+
"print(satdat.count)"
141+
]
142+
},
143+
{
144+
"cell_type": "markdown",
145+
"metadata": {},
146+
"source": [
147+
"## Parsing bands"
148+
]
149+
},
150+
{
151+
"cell_type": "code",
152+
"execution_count": null,
153+
"metadata": {},
154+
"outputs": [],
155+
"source": [
156+
"# And provides a sequence of band indexes. These are one indexing, not zero indexing like Numpy arrays.\n",
157+
"print(satdat.indexes)"
158+
]
159+
},
160+
{
161+
"cell_type": "markdown",
162+
"metadata": {},
163+
"source": [
164+
"Because we know we're look at a PlanetScope 3-band visual satellite image, we can define the bands by their order:"
165+
]
166+
},
167+
{
168+
"cell_type": "code",
169+
"execution_count": null,
170+
"metadata": {},
171+
"outputs": [],
172+
"source": [
173+
"# PlanetScope 4-band band order: BGRN\n",
174+
"\n",
175+
"blue, green, red = satdat.read()\n",
176+
"\n",
177+
"# Or the slightly less efficient:\n",
178+
"# blue = satdat.read(1)\n",
179+
"# green = satdat.read(2)\n",
180+
"# red = satdat.read(3)\n",
181+
"\n",
182+
"# Or read the entire dataset into a single 3D array:\n",
183+
"# data = satdat.read()"
184+
]
185+
},
186+
{
187+
"cell_type": "code",
188+
"execution_count": null,
189+
"metadata": {},
190+
"outputs": [],
191+
"source": [
192+
"# each band is stored as a numpy array, and its values are a numpy data type\n",
193+
"print(blue.dtype)"
194+
]
195+
},
196+
{
197+
"cell_type": "code",
198+
"execution_count": null,
199+
"metadata": {},
200+
"outputs": [],
201+
"source": [
202+
"# using the blue band as an example, examine the width & height of the image (in pixels)\n",
203+
"\n",
204+
"h = blue.shape[0]\n",
205+
"w = blue.shape[1]\n",
206+
"\n",
207+
"print(\"width: {w}, height: {h}\".format(w=w, h=h))"
208+
]
209+
}
210+
],
211+
"metadata": {
212+
"kernelspec": {
213+
"display_name": "Python 3 (ipykernel)",
214+
"language": "python",
215+
"name": "python3"
216+
},
217+
"language_info": {
218+
"codemirror_mode": {
219+
"name": "ipython",
220+
"version": 3
221+
},
222+
"file_extension": ".py",
223+
"mimetype": "text/x-python",
224+
"name": "python",
225+
"nbconvert_exporter": "python",
226+
"pygments_lexer": "ipython3",
227+
"version": "3.8.13"
228+
}
229+
},
230+
"nbformat": 4,
231+
"nbformat_minor": 2
232+
}

0 commit comments

Comments
 (0)