{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# eksplorasi metadata bmkg\n", "\n", "_notebook_ ini akan digunakan sebagai acuan pengembangan module `bmkgkit`, berupa pembacaan excel dari bmkg online. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Berhubung untuk data metadata stasiun sudah disertakan dalam `.bmkgkit`, akan langsung dipakai." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:05.110091Z", "start_time": "2018-11-06T07:25:04.134582Z" } }, "outputs": [], "source": [ "import numpy as np, pandas as pd, pathlib, matplotlib.pyplot as plt, seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:05.343261Z", "start_time": "2018-11-06T07:25:05.111611Z" } }, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "%aimport hidrokit" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from hidrokit.bmkgkit import metadata_station" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:05.489303Z", "start_time": "2018-11-06T07:25:05.343261Z" }, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_stattype_statregionprovinsikabupatenlintang_derajatbujur_derajatketinggian_mdplsoilexposureland_usetime_zone
011010101aBakonganPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan2.9500097.47000NaNNaNNaN+07:00
111010201aKluet UtaraPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5900097.00000NaNNaNNaNNaN
211010301aKluet SelatanPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.0300097.38000NaNNaNNaNNaN
311010401aLabuhan HajiPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5400097.01000NaNNaNNaNNaN
411010501aMeukekPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5432197.15230NaNNaNNaNNaN
\n", "
" ], "text/plain": [ " id_stat name_stat type_stat region \\\n", "0 11010101a Bakongan Pos Hujan Kerjasama Region I \n", "1 11010201a Kluet Utara Pos Hujan Kerjasama Region I \n", "2 11010301a Kluet Selatan Pos Hujan Kerjasama Region I \n", "3 11010401a Labuhan Haji Pos Hujan Kerjasama Region I \n", "4 11010501a Meukek Pos Hujan Kerjasama Region I \n", "\n", " provinsi kabupaten lintang_derajat \\\n", "0 Nanggroe Aceh Darussalam Kab. Aceh Selatan 2.95000 \n", "1 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.59000 \n", "2 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.03000 \n", "3 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.54000 \n", "4 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.54321 \n", "\n", " bujur_derajat ketinggian_mdpl soil exposure land_use time_zone \n", "0 97.4700 0 NaN NaN NaN +07:00 \n", "1 97.0000 0 NaN NaN NaN NaN \n", "2 97.3800 0 NaN NaN NaN NaN \n", "3 97.0100 0 NaN NaN NaN NaN \n", "4 97.1523 0 NaN NaN NaN NaN " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "metadata_station.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "rasanya tidak perlu digunakan kolom `ketinggian.mdpl soil exposure land.use time.zone`" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:05.621275Z", "start_time": "2018-11-06T07:25:05.489303Z" } }, "outputs": [], "source": [ "metadata_station = metadata_station.drop(['ketinggian_mdpl', 'soil', 'exposure', 'land_use', 'time_zone'], axis=1)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:05.755152Z", "start_time": "2018-11-06T07:25:05.621275Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_stattype_statregionprovinsikabupatenlintang_derajatbujur_derajat
011010101aBakonganPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan2.9500097.4700
111010201aKluet UtaraPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5900097.0000
211010301aKluet SelatanPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.0300097.3800
311010401aLabuhan HajiPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5400097.0100
411010501aMeukekPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5432197.1523
\n", "
" ], "text/plain": [ " id_stat name_stat type_stat region \\\n", "0 11010101a Bakongan Pos Hujan Kerjasama Region I \n", "1 11010201a Kluet Utara Pos Hujan Kerjasama Region I \n", "2 11010301a Kluet Selatan Pos Hujan Kerjasama Region I \n", "3 11010401a Labuhan Haji Pos Hujan Kerjasama Region I \n", "4 11010501a Meukek Pos Hujan Kerjasama Region I \n", "\n", " provinsi kabupaten lintang_derajat bujur_derajat \n", "0 Nanggroe Aceh Darussalam Kab. Aceh Selatan 2.95000 97.4700 \n", "1 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.59000 97.0000 \n", "2 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.03000 97.3800 \n", "3 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.54000 97.0100 \n", "4 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.54321 97.1523 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "metadata_station.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mari kita cek, data yang ada di bmkgonline" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:05.891112Z", "start_time": "2018-11-06T07:25:05.755152Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 8028 entries, 0 to 8027\n", "Data columns (total 8 columns):\n", "id_stat 8028 non-null object\n", "name_stat 8028 non-null object\n", "type_stat 8028 non-null object\n", "region 8028 non-null object\n", "provinsi 8028 non-null object\n", "kabupaten 8028 non-null object\n", "lintang_derajat 8028 non-null float64\n", "bujur_derajat 8028 non-null float64\n", "dtypes: float64(2), object(6)\n", "memory usage: 564.5+ KB\n", "None\n" ] } ], "source": [ "print(metadata_station.info())" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.023662Z", "start_time": "2018-11-06T07:25:05.891112Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Jumlah baris yang terdapat dalam metadata: 8028\n" ] } ], "source": [ "print('Jumlah baris yang terdapat dalam metadata: ', metadata_station.shape[0])" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.167140Z", "start_time": "2018-11-06T07:25:06.023662Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Jumlah stasiun yang terdata di bmkg (berdasarkan id): 8025\n", "Jumlah stasiun yang terdata di bmkg (berdasarkan nama): 7147\n" ] } ], "source": [ "print('Jumlah stasiun yang terdata di bmkg (berdasarkan id): ', metadata_station.id_stat.nunique())\n", "print('Jumlah stasiun yang terdata di bmkg (berdasarkan nama): ', metadata_station.name_stat.nunique())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Angkanya berbeda, yang seharusnya sama. Dugaan saya adalah, ada stasiun yang tidak memiliki `id`. Atau ada beberapa stasiun yang memiliki `id` serupa (mungkin kah itu?). Tidak mungkin ada nilai `null` / `nan`, karena dari info, diketahui bahwa semua kolom merupakan `non-null`. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.330483Z", "start_time": "2018-11-06T07:25:06.167140Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Check id stasiun yang sama\n", "97504 2\n", "51010404a 2\n", "33221801a 2\n", "35101506a 1\n", "35072101a 1\n", "Name: id_stat, dtype: int64\n" ] } ], "source": [ "print('Check id stasiun yang sama')\n", "print(metadata_station.id_stat.value_counts(ascending=False).head(5))\n", "id_stasiun_sama = metadata_station.id_stat.value_counts(ascending=False).iloc[:3].index.tolist()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ternyata ada 3 `id` stasiun yang menyimpan dua informasi stasiun. Stasiun tersebut" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.468478Z", "start_time": "2018-11-06T07:25:06.330483Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_stattype_statregionprovinsikabupatenlintang_derajatbujur_derajat
241833221801aUngaran / GenukPos Hujan KerjasamaRegion IIJawa TengahKab. Semarang-7.14651110.4057
245533221801aUngaran / GenukPos Hujan KerjasamaRegion IIJawa TengahKab. Semarang-7.14651110.4057
425051010404aNusasariPos Hujan KerjasamaRegion IIIBaliKab. Jembrana-8.28000114.5100
425151010404aTetelanPos Hujan KerjasamaRegion IIIBaliKab. Jembrana-8.29000114.5100
723197504Stasiun Geofisika SorongUPTRegion VPapua BaratKota Sorong-0.86000131.2600
723297504Stasiun Geofisika SorongUPTRegion VPapua BaratKota Sorong-0.86000131.2600
\n", "
" ], "text/plain": [ " id_stat name_stat type_stat region \\\n", "2418 33221801a Ungaran / Genuk Pos Hujan Kerjasama Region II \n", "2455 33221801a Ungaran / Genuk Pos Hujan Kerjasama Region II \n", "4250 51010404a Nusasari Pos Hujan Kerjasama Region III \n", "4251 51010404a Tetelan Pos Hujan Kerjasama Region III \n", "7231 97504 Stasiun Geofisika Sorong UPT Region V \n", "7232 97504 Stasiun Geofisika Sorong UPT Region V \n", "\n", " provinsi kabupaten lintang_derajat bujur_derajat \n", "2418 Jawa Tengah Kab. Semarang -7.14651 110.4057 \n", "2455 Jawa Tengah Kab. Semarang -7.14651 110.4057 \n", "4250 Bali Kab. Jembrana -8.28000 114.5100 \n", "4251 Bali Kab. Jembrana -8.29000 114.5100 \n", "7231 Papua Barat Kota Sorong -0.86000 131.2600 \n", "7232 Papua Barat Kota Sorong -0.86000 131.2600 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stasiun_sama_id = metadata_station.loc[metadata_station['id_stat'].isin(id_stasiun_sama),:]\n", "stasiun_sama_id" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.603132Z", "start_time": "2018-11-06T07:25:06.468478Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "stasiun 33221801a sama dengan stasiun berikutnya? \n", "\tiya\n", "stasiun 51010404a sama dengan stasiun berikutnya? \n", "\ttidak, pada kolom ['name_stat', 'lintang_derajat']\n", "stasiun 97504 sama dengan stasiun berikutnya? \n", "\tiya\n" ] } ], "source": [ "def sama_atau_tidak(posisi1):\n", " posisi2 = posisi1+1\n", " mask = (~(stasiun_sama_id.iloc[posisi1] == stasiun_sama_id.iloc[posisi2]))\n", " id_stat = stasiun_sama_id.iloc[posisi1,0]\n", " total_yang_tidak_sama = mask.sum()\n", " if total_yang_tidak_sama:\n", " return (f'stasiun {id_stat} sama dengan stasiun berikutnya? \\n\\t'\n", " f'tidak, pada kolom {(mask[mask == True]).index.tolist()}')\n", " else:\n", " return (f'stasiun {id_stat} sama dengan stasiun berikutnya? \\n\\t'\n", " f'iya')\n", " \n", "print(sama_atau_tidak(0))\n", "print(sama_atau_tidak(2))\n", "print(sama_atau_tidak(4))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Stasiun yang memiliki informasi yang sama akan dihapus dalam tabel" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.735471Z", "start_time": "2018-11-06T07:25:06.603132Z" } }, "outputs": [], "source": [ "metadata_station = metadata_station.drop_duplicates(subset='id_stat', keep='first').reset_index(drop=True)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:06.871362Z", "start_time": "2018-11-06T07:25:06.735471Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_stattype_statregionprovinsikabupatenlintang_derajatbujur_derajat
011010101aBakonganPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan2.9500097.4700
111010201aKluet UtaraPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5900097.0000
211010301aKluet SelatanPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.0300097.3800
311010401aLabuhan HajiPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5400097.0100
411010501aMeukekPos Hujan KerjasamaRegion INanggroe Aceh DarussalamKab. Aceh Selatan3.5432197.1523
\n", "
" ], "text/plain": [ " id_stat name_stat type_stat region \\\n", "0 11010101a Bakongan Pos Hujan Kerjasama Region I \n", "1 11010201a Kluet Utara Pos Hujan Kerjasama Region I \n", "2 11010301a Kluet Selatan Pos Hujan Kerjasama Region I \n", "3 11010401a Labuhan Haji Pos Hujan Kerjasama Region I \n", "4 11010501a Meukek Pos Hujan Kerjasama Region I \n", "\n", " provinsi kabupaten lintang_derajat bujur_derajat \n", "0 Nanggroe Aceh Darussalam Kab. Aceh Selatan 2.95000 97.4700 \n", "1 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.59000 97.0000 \n", "2 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.03000 97.3800 \n", "3 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.54000 97.0100 \n", "4 Nanggroe Aceh Darussalam Kab. Aceh Selatan 3.54321 97.1523 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "metadata_station.head(5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bagaimana dengan kolom `nama`?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:07.011533Z", "start_time": "2018-11-06T07:25:06.871362Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Karanganyar 6\n", "Tanjung 5\n", "Sukadana 5\n", "Sidomulyo 5\n", "Koto Baru 4\n", "Name: name_stat, dtype: int64 \n", "\n", "25 stasiun yang muncul lebih dari satu kali: \n", "\t Karanganyar, Tanjung, Sukadana, Sidomulyo, Koto Baru, Bojong, Sukamaju, Bakung, Beji, Rembang, Guguk, Cubadak, Lambuya, Babadan, Ciawi, Cinangka, Sungai Tarab, Ombilin, Curug, Talawi, Lengkong, Blimbing, Wonorejo, Losari, Makmur\n", "\n", "Jumlah nama yang memiliki id stasiun lebih dari 1: \n", "\t 788\n" ] } ], "source": [ "nama_stasiun_sama = metadata_station.name_stat.value_counts()\n", "print(nama_stasiun_sama.head(5),'\\n')\n", "print('25 stasiun yang muncul lebih dari satu kali: \\n\\t',\n", " ', '.join(nama_stasiun_sama[nama_stasiun_sama != 1].index.tolist()[:25]))\n", "print()\n", "print('Jumlah nama yang memiliki id stasiun lebih dari 1: \\n\\t',\n", " (nama_stasiun_sama != 1).sum())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ternyata ada beberapa stasiun yang memiliki nama yang sama, meski memiliki `id` yang berbeda. Karena `id` merupakan identitas utama dari stasiun, maka untuk `nama` yang sama diabaikan. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Data akan disimpan dalam `.csv` dengan nama `clean_metadata_station`" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:07.205655Z", "start_time": "2018-11-06T07:25:07.011533Z" } }, "outputs": [], "source": [ "metadata_station.to_csv('out/clean_metadata_station.csv', index=False)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:07.339085Z", "start_time": "2018-11-06T07:25:07.205655Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_statregionprovinsikabupatenlintang_derajatbujur_derajat
type_stat
Pos Hujan Kerjasama6993699369936993699369936993
UPT179179179179179179179
aws853853853853853853853
\n", "
" ], "text/plain": [ " id_stat name_stat region provinsi kabupaten \\\n", "type_stat \n", "Pos Hujan Kerjasama 6993 6993 6993 6993 6993 \n", "UPT 179 179 179 179 179 \n", "aws 853 853 853 853 853 \n", "\n", " lintang_derajat bujur_derajat \n", "type_stat \n", "Pos Hujan Kerjasama 6993 6993 \n", "UPT 179 179 \n", "aws 853 853 " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "metadata_station.groupby('type_stat').count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dari perintah diatas dapat diketahui jumlah tipe stasiun di Indonesia berdasarkan data BMKG:\n", "- 6993 stasiun Pos Hujan Kerjasama\n", "- 179 stasiun UPT\n", "- 853 stasiun aws" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Bedah Jawa Barat\n", "---\n", "Pada pembedahan berikutnya akan lebih fokus dengan lokasi Jawa Barat." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:07.477540Z", "start_time": "2018-11-06T07:25:07.339085Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Banyaknya stasiun di Jawa Barat: 884\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_stattype_statregionprovinsikabupatenlintang_derajatbujur_derajat
80096751Stasiun Meteorologi CitekoUPTRegion IIJawa BaratKab. Bogor-6.70000106.85000
80132010706gAWS Mekarsari CibinongawsRegion IIJawa BaratKab. Bogor-6.41882106.98320
80232010103gAWS Jagorawi BogorawsRegion IIJawa BaratKab. Bogor-6.27635106.52164
80332012603gAWS Gunung GeulisawsRegion IIJawa BaratKab. Bogor-6.62449106.86200
80432012512gAWS Cibereum BogorawsRegion IIJawa BaratKab. Bogor-6.71067106.95010
\n", "
" ], "text/plain": [ " id_stat name_stat type_stat region provinsi \\\n", "800 96751 Stasiun Meteorologi Citeko UPT Region II Jawa Barat \n", "801 32010706g AWS Mekarsari Cibinong aws Region II Jawa Barat \n", "802 32010103g AWS Jagorawi Bogor aws Region II Jawa Barat \n", "803 32012603g AWS Gunung Geulis aws Region II Jawa Barat \n", "804 32012512g AWS Cibereum Bogor aws Region II Jawa Barat \n", "\n", " kabupaten lintang_derajat bujur_derajat \n", "800 Kab. Bogor -6.70000 106.85000 \n", "801 Kab. Bogor -6.41882 106.98320 \n", "802 Kab. Bogor -6.27635 106.52164 \n", "803 Kab. Bogor -6.62449 106.86200 \n", "804 Kab. Bogor -6.71067 106.95010 " ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stasiun_jabar = metadata_station[metadata_station.provinsi == 'Jawa Barat']\n", "print('Banyaknya stasiun di Jawa Barat:', stasiun_jabar.shape[0])\n", "stasiun_jabar.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Diketahui bahwa ada __884__ stasiun yang berlokasikan di Jawa Barat" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:07.615944Z", "start_time": "2018-11-06T07:25:07.477540Z" } }, "outputs": [ { "data": { "text/plain": [ "Kab. Bogor 92\n", "Kab. Sukabumi 78\n", "Kab. Cianjur 76\n", "Kab. Karawang 59\n", "Kab. Indramayu 57\n", "Kab. Cirebon 55\n", "Kab. Bandung 55\n", "Kab. Ciamis 47\n", "Kab. Tasikmalaya 47\n", "Kab. Majalengka 42\n", "Kab. Subang 40\n", "Kab. Bandung Barat 35\n", "Kab. Garut 33\n", "Kab. Kuningan 28\n", "Kab. Bekasi 26\n", "Kab. Purwakarta 25\n", "Kab. Sumedang 22\n", "Kota Bandung 15\n", "Kota Bogor 15\n", "Kota Tasikmalaya 13\n", "Kota Bekasi 10\n", "Kota Banjar 6\n", "Kota Depok 5\n", "Kota Cirebon 2\n", "Kota Sukabumi 1\n", "Name: kabupaten, dtype: int64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stasiun_jabar.kabupaten.value_counts()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dari informasi diatas diketahui bahwa Kabupaten Bogor memiliki stasiun terbanyak dibandingkan daerah kabupaten lainnya." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:07.805605Z", "start_time": "2018-11-06T07:25:07.615944Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statname_stattype_statregionprovinsikabupatenlintang_derajatbujur_derajat
165996783Stasiun Geofisika BandungUPTRegion IIJawa BaratKota Bandung-6.88356107.59733
166032730701gAWS Stageof BandungawsRegion IIJawa BaratKota Bandung-6.83390107.59740
166132730501aLanud HuseinPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.90197107.57622
166232730601aCicendoPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.91205107.60221
166332730801aBengkokPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.86389107.62440
166432731301aTekaga BodasPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.93240107.63036
166533010102aLengkong/ Telaga BodasPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.92601107.62354
166632731302aLengkongPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.93307107.63028
166732732201aMargacintaPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.95302107.64887
166832732501aCibiruPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.92421107.71267
166932732601aCigendingPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.89490107.70846
167032732602aUjung BerungPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.92137107.73850
167132732603aPanglipur GalihPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.92470107.59530
167232732604aGunung KasurPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.90156107.71025
167332732605aUjung BerungPos Hujan KerjasamaRegion IIJawa BaratKota Bandung-6.90612107.70730
\n", "
" ], "text/plain": [ " id_stat name_stat type_stat region \\\n", "1659 96783 Stasiun Geofisika Bandung UPT Region II \n", "1660 32730701g AWS Stageof Bandung aws Region II \n", "1661 32730501a Lanud Husein Pos Hujan Kerjasama Region II \n", "1662 32730601a Cicendo Pos Hujan Kerjasama Region II \n", "1663 32730801a Bengkok Pos Hujan Kerjasama Region II \n", "1664 32731301a Tekaga Bodas Pos Hujan Kerjasama Region II \n", "1665 33010102a Lengkong/ Telaga Bodas Pos Hujan Kerjasama Region II \n", "1666 32731302a Lengkong Pos Hujan Kerjasama Region II \n", "1667 32732201a Margacinta Pos Hujan Kerjasama Region II \n", "1668 32732501a Cibiru Pos Hujan Kerjasama Region II \n", "1669 32732601a Cigending Pos Hujan Kerjasama Region II \n", "1670 32732602a Ujung Berung Pos Hujan Kerjasama Region II \n", "1671 32732603a Panglipur Galih Pos Hujan Kerjasama Region II \n", "1672 32732604a Gunung Kasur Pos Hujan Kerjasama Region II \n", "1673 32732605a Ujung Berung Pos Hujan Kerjasama Region II \n", "\n", " provinsi kabupaten lintang_derajat bujur_derajat \n", "1659 Jawa Barat Kota Bandung -6.88356 107.59733 \n", "1660 Jawa Barat Kota Bandung -6.83390 107.59740 \n", "1661 Jawa Barat Kota Bandung -6.90197 107.57622 \n", "1662 Jawa Barat Kota Bandung -6.91205 107.60221 \n", "1663 Jawa Barat Kota Bandung -6.86389 107.62440 \n", "1664 Jawa Barat Kota Bandung -6.93240 107.63036 \n", "1665 Jawa Barat Kota Bandung -6.92601 107.62354 \n", "1666 Jawa Barat Kota Bandung -6.93307 107.63028 \n", "1667 Jawa Barat Kota Bandung -6.95302 107.64887 \n", "1668 Jawa Barat Kota Bandung -6.92421 107.71267 \n", "1669 Jawa Barat Kota Bandung -6.89490 107.70846 \n", "1670 Jawa Barat Kota Bandung -6.92137 107.73850 \n", "1671 Jawa Barat Kota Bandung -6.92470 107.59530 \n", "1672 Jawa Barat Kota Bandung -6.90156 107.71025 \n", "1673 Jawa Barat Kota Bandung -6.90612 107.70730 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stasiun_jabar[stasiun_jabar.kabupaten == 'Kota Bandung']" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2018-11-06T07:25:08.026158Z", "start_time": "2018-11-06T07:25:07.805605Z" } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
id_statlintang_derajatbujur_derajat
80096751-6.70000106.85000
80132010706g-6.41882106.98320
80232010103g-6.27635106.52164
80332012603g-6.62449106.86200
80432012512g-6.71067106.95010
80532012509g-6.69796106.93510
80632010806b-6.16028107.14294
80732010101a-6.46040106.85640
80832010102a-6.46571106.86646
80932010301a-6.53690106.89050
81032010302a-6.40000106.68330
81132010303a-6.56933106.86375
81232010501a-6.59281106.90193
81332010502a-6.57586106.69392
81432010601a-6.51348107.08080
81532010602a-6.50470107.08367
81632010603a-6.46790107.06590
81732010604a-6.46849107.05594
81832010605a-6.61980107.15800
81932010606a-6.51135107.04756
82032010701a-6.41430106.96210
82132010702a-6.40928106.97621
82232010703a-6.45348106.63672
82332010704a-6.42320107.02448
82432010705a-6.45258106.95727
82532010801a-6.57782107.06113
82632010802a-6.51103107.12720
82732010803a-6.52720107.18390
82832010804a-6.73680106.81510
82932010805a-6.50430107.13300
............
168032750303a-6.25167106.98513
168132750401a-6.25531106.97772
168232750402a-6.27187106.98230
168332750801a-6.27177106.92772
168432750901a-6.27499106.98286
168532109999a-6.75000108.27000
169332760101a-6.40530106.75890
169432760102a-6.39917106.78051
169532760301a-6.40530106.75890
169632760302a-6.38763106.76274
169732760303a-6.42812106.83875
169832780101f-7.33082108.20310
169932780301a-7.32090108.22259
170032780401a-7.28605108.19401
170132780402a-7.28975108.19622
170233011001a-7.38529108.18790
170332780501a-7.38251108.20729
170433011101a-7.41334108.20806
170532780502a-7.41334108.20806
170632780601a-7.37305108.21868
170732780602a-7.34202108.24953
170832780603a-7.36385108.26591
170932780604a-7.36071108.26705
171032780605a-7.34361108.24280
171132790101a-7.37324108.55860
171232790102a-7.38794108.54806
171332790103a-7.41214108.56145
171432790104a-7.36546108.53253
171532790201a-7.36059108.60508
171632790402a-7.36626108.62313
\n", "

884 rows × 3 columns

\n", "
" ], "text/plain": [ " id_stat lintang_derajat bujur_derajat\n", "800 96751 -6.70000 106.85000\n", "801 32010706g -6.41882 106.98320\n", "802 32010103g -6.27635 106.52164\n", "803 32012603g -6.62449 106.86200\n", "804 32012512g -6.71067 106.95010\n", "805 32012509g -6.69796 106.93510\n", "806 32010806b -6.16028 107.14294\n", "807 32010101a -6.46040 106.85640\n", "808 32010102a -6.46571 106.86646\n", "809 32010301a -6.53690 106.89050\n", "810 32010302a -6.40000 106.68330\n", "811 32010303a -6.56933 106.86375\n", "812 32010501a -6.59281 106.90193\n", "813 32010502a -6.57586 106.69392\n", "814 32010601a -6.51348 107.08080\n", "815 32010602a -6.50470 107.08367\n", "816 32010603a -6.46790 107.06590\n", "817 32010604a -6.46849 107.05594\n", "818 32010605a -6.61980 107.15800\n", "819 32010606a -6.51135 107.04756\n", "820 32010701a -6.41430 106.96210\n", "821 32010702a -6.40928 106.97621\n", "822 32010703a -6.45348 106.63672\n", "823 32010704a -6.42320 107.02448\n", "824 32010705a -6.45258 106.95727\n", "825 32010801a -6.57782 107.06113\n", "826 32010802a -6.51103 107.12720\n", "827 32010803a -6.52720 107.18390\n", "828 32010804a -6.73680 106.81510\n", "829 32010805a -6.50430 107.13300\n", "... ... ... ...\n", "1680 32750303a -6.25167 106.98513\n", "1681 32750401a -6.25531 106.97772\n", "1682 32750402a -6.27187 106.98230\n", "1683 32750801a -6.27177 106.92772\n", "1684 32750901a -6.27499 106.98286\n", "1685 32109999a -6.75000 108.27000\n", "1693 32760101a -6.40530 106.75890\n", "1694 32760102a -6.39917 106.78051\n", "1695 32760301a -6.40530 106.75890\n", "1696 32760302a -6.38763 106.76274\n", "1697 32760303a -6.42812 106.83875\n", "1698 32780101f -7.33082 108.20310\n", "1699 32780301a -7.32090 108.22259\n", "1700 32780401a -7.28605 108.19401\n", "1701 32780402a -7.28975 108.19622\n", "1702 33011001a -7.38529 108.18790\n", "1703 32780501a -7.38251 108.20729\n", "1704 33011101a -7.41334 108.20806\n", "1705 32780502a -7.41334 108.20806\n", "1706 32780601a -7.37305 108.21868\n", "1707 32780602a -7.34202 108.24953\n", "1708 32780603a -7.36385 108.26591\n", "1709 32780604a -7.36071 108.26705\n", "1710 32780605a -7.34361 108.24280\n", "1711 32790101a -7.37324 108.55860\n", "1712 32790102a -7.38794 108.54806\n", "1713 32790103a -7.41214 108.56145\n", "1714 32790104a -7.36546 108.53253\n", "1715 32790201a -7.36059 108.60508\n", "1716 32790402a -7.36626 108.62313\n", "\n", "[884 rows x 3 columns]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stasiun_jabar[['id_stat', 'lintang_derajat', 'bujur_derajat']]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python [conda env:testhidrokit]", "language": "python", "name": "conda-env-testhidrokit-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.2" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }