Skip to content

Commit 7e93daf

Browse files
committed
add more exercises to part 4
1 parent 5b3fffd commit 7e93daf

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

kurssimateriaali/4_paikkatietoanalyysi.ipynb

+37-11
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@
6565
{
6666
"cell_type": "markdown",
6767
"id": "3cfd0549-f677-43b3-9eda-0182a8a27ef0",
68-
"metadata": {
69-
"jp-MarkdownHeadingCollapsed": true
70-
},
68+
"metadata": {},
7169
"source": [
7270
"## Ratkaisu"
7371
]
@@ -199,7 +197,7 @@
199197
"id": "1f6c04d5-d59c-4f35-88e2-3b533d7b6678",
200198
"metadata": {},
201199
"source": [
202-
"Projisoi salamahavainnot samaan koordinaattijärjestelmään, kuin kohta käytettävä kunta-aineisto (epsg=3067). Huomaa, että sijainnit ovat nyt asteita, eli emme voi suoraan asettaa ETRS89 / TM35FIN koordinaattijärjestelmää.\n",
200+
"Projisoi salamahavainnot samaan koordinaattijärjestelmään, kuin kohta käytettävä kunta-aineisto (`epsg=3067`). Huomaa, että sijainnit ovat nyt asteita - aineisto on wgs 84 -koordinaatistossa. Emme siis voi suoraan asettaa ETRS89 / TM35FIN koordinaattijärjestelmää.\n",
203201
"\n",
204202
"1. Aseta ensin `geo_lightnings`-GeoDataFrame wgs 84 koordinaattijärjestelmään (`set_crs`). Epsg-koodi on 4326.\n",
205203
"2. Uudelleenprojisoi (`to_crs`) vasta kun koordinaattijärjestelmä on asetettu. Ylikirjoita `geo_lightnings`-muuttuja uudella epsg 3067 -versiolla."
@@ -317,11 +315,37 @@
317315
"id": "14baae2c-591b-41d9-a7dd-009f0affce1f",
318316
"metadata": {},
319317
"source": [
320-
"## Liitos sijainnin perusteella\n",
318+
"## Harjoitus - liitos sijainnin perusteella\n",
321319
"\n",
322320
"Nyt voimme edetä tekemään sijainteihin perustuvan liitoksen salamahavaintojen ja kuntien välillä. Tarkoituksena on, että saisimme jokaiseen salamaan tiedon siitä, minkä kunnan alueelle se iski.\n",
323321
"\n",
324-
"Tämä kannattaa toteuttaa `sjoin` eli spatial join -metodilla. Yhdistetään siis salamahavaintoihin tieto kunnista, perusteena, että havainto on kunnan alueella (\"within\"). Liitoksen tyypiksi otetaan \"left\", sillä haluamme tuloksena vain salamahavainnot."
322+
"Tämä kannattaa toteuttaa `sjoin`, eli spatial join, -funktiolla. Yhdistetään siis salamahavaintoihin tieto kunnista, perusteena, että havainto on kunnan alueella.\n",
323+
"\n",
324+
"1. Käytä geopandasin `sjoin`-funktiota (`gpd.sjoin`)\n",
325+
"2. Valitse parametreihin `left_df` ja `right_df` halutut GeoDataFramet, eli: `left_df=geo_lightnings` ja `right_df=municipalities`.\n",
326+
"3. Haluamme tiedon sen perusteella, minkä kunnan sisällä havainto on. Valitse siis predikaatiksi, eli `predicate`-parametrin arvoksi, `\"within\"`.\n",
327+
"4. Haluamme tuloksena salamahavainnot, joihin on lisättynä tieto kunnasta, jonne salama on iskenyt. Annetaan siis `how`-parametrille arvoksi `\"left\"`: Näin tuloksena on vain salamahavainnot.\n",
328+
"5. Kun liitos näyttää toimivan, tallenna tuloksena syntyvä GeoDataFrame muuttujaan `lightnings_with_municipality`."
329+
]
330+
},
331+
{
332+
"cell_type": "code",
333+
"execution_count": null,
334+
"id": "ccb44cf2-38a7-4d09-9f6a-2fab93869f3b",
335+
"metadata": {},
336+
"outputs": [],
337+
"source": [
338+
"# Kirjoita ratkaisu\n"
339+
]
340+
},
341+
{
342+
"cell_type": "markdown",
343+
"id": "e30768ff-f50c-491e-b4c5-3078203b9a5e",
344+
"metadata": {
345+
"jp-MarkdownHeadingCollapsed": true
346+
},
347+
"source": [
348+
"## Ratkaisu"
325349
]
326350
},
327351
{
@@ -337,8 +361,9 @@
337361
},
338362
"outputs": [],
339363
"source": [
340-
"lightnings_with_municipality = geo_lightnings.sjoin(\n",
341-
" municipalities,\n",
364+
"lightnings_with_municipality = gpd.sjoin(\n",
365+
" left_df=geo_lightnings,\n",
366+
" right_df=municipalities,\n",
342367
" predicate=\"within\",\n",
343368
" how=\"left\",\n",
344369
")"
@@ -479,8 +504,9 @@
479504
"metadata": {},
480505
"outputs": [],
481506
"source": [
482-
"municipalities = municipalities.merge(\n",
483-
" lightning_counts,\n",
507+
"municipalities = pd.merge(\n",
508+
" left=municipalities,\n",
509+
" right=lightning_counts,\n",
484510
" left_on=\"nimi\",\n",
485511
" right_on=\"nimi\",\n",
486512
" how=\"left\",\n",
@@ -895,7 +921,7 @@
895921
"name": "python",
896922
"nbconvert_exporter": "python",
897923
"pygments_lexer": "ipython3",
898-
"version": "3.12.7"
924+
"version": "3.12.8"
899925
}
900926
},
901927
"nbformat": 4,

0 commit comments

Comments
 (0)