In [ ]:
!pip install rtree
!pip install pyproj
!pip install gdal
!pip install geopandas
!pip install geoplot
!pip install fiona
!pip install shapely
Requirement already satisfied: rtree in /usr/local/lib/python3.7/dist-packages (0.9.7)
Requirement already satisfied: pyproj in /usr/local/lib/python3.7/dist-packages (3.0.1)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from pyproj) (2020.12.5)
Requirement already satisfied: gdal in /usr/local/lib/python3.7/dist-packages (2.2.2)
Requirement already satisfied: geopandas in /usr/local/lib/python3.7/dist-packages (0.9.0)
Requirement already satisfied: pyproj>=2.2.0 in /usr/local/lib/python3.7/dist-packages (from geopandas) (3.0.1)
Requirement already satisfied: fiona>=1.8 in /usr/local/lib/python3.7/dist-packages (from geopandas) (1.8.19)
Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.7/dist-packages (from geopandas) (1.1.5)
Requirement already satisfied: shapely>=1.6 in /usr/local/lib/python3.7/dist-packages (from geopandas) (1.7.1)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from pyproj>=2.2.0->geopandas) (2020.12.5)
Requirement already satisfied: attrs>=17 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (20.3.0)
Requirement already satisfied: click-plugins>=1.0 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (1.1.1)
Requirement already satisfied: munch in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (2.5.0)
Requirement already satisfied: click<8,>=4.0 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (7.1.2)
Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (0.7.1)
Requirement already satisfied: six>=1.7 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (1.15.0)
Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (2.8.1)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (2018.9)
Requirement already satisfied: numpy>=1.15.4 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (1.19.5)
Requirement already satisfied: geoplot in /usr/local/lib/python3.7/dist-packages (0.4.1)
Requirement already satisfied: seaborn in /usr/local/lib/python3.7/dist-packages (from geoplot) (0.11.1)
Requirement already satisfied: geopandas in /usr/local/lib/python3.7/dist-packages (from geoplot) (0.9.0)
Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from geoplot) (1.1.5)
Requirement already satisfied: mapclassify>=2.1 in /usr/local/lib/python3.7/dist-packages (from geoplot) (2.4.2)
Requirement already satisfied: descartes in /usr/local/lib/python3.7/dist-packages (from geoplot) (1.1.0)
Requirement already satisfied: matplotlib in /usr/local/lib/python3.7/dist-packages (from geoplot) (3.2.2)
Requirement already satisfied: cartopy in /usr/local/lib/python3.7/dist-packages (from geoplot) (0.19.0.post1)
Requirement already satisfied: contextily>=1.0.0 in /usr/local/lib/python3.7/dist-packages (from geoplot) (1.1.0)
Requirement already satisfied: scipy>=1.0 in /usr/local/lib/python3.7/dist-packages (from seaborn->geoplot) (1.4.1)
Requirement already satisfied: numpy>=1.15 in /usr/local/lib/python3.7/dist-packages (from seaborn->geoplot) (1.19.5)
Requirement already satisfied: fiona>=1.8 in /usr/local/lib/python3.7/dist-packages (from geopandas->geoplot) (1.8.19)
Requirement already satisfied: pyproj>=2.2.0 in /usr/local/lib/python3.7/dist-packages (from geopandas->geoplot) (3.0.1)
Requirement already satisfied: shapely>=1.6 in /usr/local/lib/python3.7/dist-packages (from geopandas->geoplot) (1.7.1)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas->geoplot) (2018.9)
Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas->geoplot) (2.8.1)
Requirement already satisfied: networkx in /usr/local/lib/python3.7/dist-packages (from mapclassify>=2.1->geoplot) (2.5.1)
Requirement already satisfied: scikit-learn in /usr/local/lib/python3.7/dist-packages (from mapclassify>=2.1->geoplot) (0.22.2.post1)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->geoplot) (1.3.1)
Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib->geoplot) (2.4.7)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib->geoplot) (0.10.0)
Requirement already satisfied: pyshp>=2 in /usr/local/lib/python3.7/dist-packages (from cartopy->geoplot) (2.1.3)
Requirement already satisfied: joblib in /usr/local/lib/python3.7/dist-packages (from contextily>=1.0.0->geoplot) (1.0.1)
Requirement already satisfied: mercantile in /usr/local/lib/python3.7/dist-packages (from contextily>=1.0.0->geoplot) (1.2.1)
Requirement already satisfied: rasterio in /usr/local/lib/python3.7/dist-packages (from contextily>=1.0.0->geoplot) (1.2.3)
Requirement already satisfied: pillow in /usr/local/lib/python3.7/dist-packages (from contextily>=1.0.0->geoplot) (7.1.2)
Requirement already satisfied: geopy in /usr/local/lib/python3.7/dist-packages (from contextily>=1.0.0->geoplot) (1.17.0)
Requirement already satisfied: requests in /usr/local/lib/python3.7/dist-packages (from contextily>=1.0.0->geoplot) (2.23.0)
Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (0.7.1)
Requirement already satisfied: six>=1.7 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (1.15.0)
Requirement already satisfied: attrs>=17 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (20.3.0)
Requirement already satisfied: click<8,>=4.0 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (7.1.2)
Requirement already satisfied: click-plugins>=1.0 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (1.1.1)
Requirement already satisfied: munch in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (2.5.0)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas->geoplot) (2020.12.5)
Requirement already satisfied: decorator<5,>=4.3 in /usr/local/lib/python3.7/dist-packages (from networkx->mapclassify>=2.1->geoplot) (4.4.2)
Requirement already satisfied: affine in /usr/local/lib/python3.7/dist-packages (from rasterio->contextily>=1.0.0->geoplot) (2.3.0)
Requirement already satisfied: snuggs>=1.4.1 in /usr/local/lib/python3.7/dist-packages (from rasterio->contextily>=1.0.0->geoplot) (1.4.7)
Requirement already satisfied: geographiclib<2,>=1.49 in /usr/local/lib/python3.7/dist-packages (from geopy->contextily>=1.0.0->geoplot) (1.50)
Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests->contextily>=1.0.0->geoplot) (2.10)
Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests->contextily>=1.0.0->geoplot) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests->contextily>=1.0.0->geoplot) (1.24.3)
Requirement already satisfied: fiona in /usr/local/lib/python3.7/dist-packages (1.8.19)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from fiona) (2020.12.5)
Requirement already satisfied: six>=1.7 in /usr/local/lib/python3.7/dist-packages (from fiona) (1.15.0)
Requirement already satisfied: click<8,>=4.0 in /usr/local/lib/python3.7/dist-packages (from fiona) (7.1.2)
Requirement already satisfied: click-plugins>=1.0 in /usr/local/lib/python3.7/dist-packages (from fiona) (1.1.1)
Requirement already satisfied: attrs>=17 in /usr/local/lib/python3.7/dist-packages (from fiona) (20.3.0)
Requirement already satisfied: cligj>=0.5 in /usr/local/lib/python3.7/dist-packages (from fiona) (0.7.1)
Requirement already satisfied: munch in /usr/local/lib/python3.7/dist-packages (from fiona) (2.5.0)
Requirement already satisfied: shapely in /usr/local/lib/python3.7/dist-packages (1.7.1)
In [ ]:
import geoplot as gplt
import geopandas as gpd
import geoplot.crs as gcrs
import imageio
import pandas as pd
import pathlib
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import mapclassify as mc
import numpy as np

%matplotlib inline
In [ ]:
from google.colab import drive
drive.mount("/content/drive")
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
In [ ]:
cd drive/
/content/drive
In [ ]:
%cd MyDrive/Colab\ Notebooks/
/content/drive/MyDrive/Colab Notebooks
In [ ]:
%cd tugas\ geospatial
/content/drive/MyDrive/Colab Notebooks/tugas geospatial
In [ ]:
%cd file/
/content/drive/MyDrive/Colab Notebooks/tugas geospatial/file
In [ ]:
PATH_OF_DATA= '/content/drive/"My Drive"/Colab\ Notebooks/tugas\ geospatial/file'
!ls {PATH_OF_DATA}
datacovid.csv  IDN_1.dbf  IDN_1.shx	 IndoKota1.shp	    IndoKota1text.prj
etc	       IDN_1.prj  IndoKota1.dbf  IndoKota1.shx	    IndoKota1text.shp
IDN_1.cpg      IDN_1.shp  IndoKota1.prj  IndoKota1text.dbf  IndoKota1text.shx
In [ ]:
DT = 'datacovid.csv'
dataset = pd.read_csv(DT) 
dataset.head()
Out[ ]:
province_id province_name island iso_code capital_city population population_kmsquare active
0 1 Aceh Sumatra AC Banda Aceh 4906835 86 1003
1 2 Bali Kepulauan Nusa Tenggara BA Denpasar 4104900 738 1676
2 3 Banten Jawa BT Serang 11704877 1298 1961
3 4 Bengkulu Sumatra BE Bengkulu 1844800 93 847
4 5 Yogyakarta Jawa YO Yogyakarta 3553100 1134 3814
In [ ]:
!ls
datacovid.csv  IDN_1.dbf  IDN_1.shx	 IndoKota1.shp	    IndoKota1text.prj
etc	       IDN_1.prj  IndoKota1.dbf  IndoKota1.shx	    IndoKota1text.shp
IDN_1.cpg      IDN_1.shp  IndoKota1.prj  IndoKota1text.dbf  IndoKota1text.shx
In [ ]:
# read provinsi
IndoFULL = gpd.read_file('IDN_1.shp')
IndoFULL.head()
Out[ ]:
GID_0 NAME_0 GID_1 NAME_1 VARNAME_1 NL_NAME_1 TYPE_1 ENGTYPE_1 CC_1 HASC_1 geometry
0 IDN Indonesia IDN.1_1 Aceh None None Propinisi Province 11 ID.AC MULTIPOLYGON (((96.66509 2.12018, 96.66765 2.1...
1 IDN Indonesia IDN.2_1 Bali None None Propinisi Province 51 ID.BA MULTIPOLYGON (((115.59464 -8.81672, 115.59444 ...
2 IDN Indonesia IDN.3_1 Bangka Belitung None None Propinisi Province 19 ID.BB MULTIPOLYGON (((107.96173 -3.41100, 107.96220 ...
3 IDN Indonesia IDN.4_1 Banten None None Propinisi Province 36 ID.BT MULTIPOLYGON (((105.54977 -6.99566, 105.55035 ...
4 IDN Indonesia IDN.5_1 Bengkulu None None Propinisi Province 17 ID.BE MULTIPOLYGON (((102.37586 -5.36968, 102.38067 ...
In [ ]:
# read kota point
IndoKota = gpd.read_file('IndoKota1.shp')
IndoKota.head()
Out[ ]:
Nama Kode_unsur geometry
0 INDRAMAYU 52.0 POINT Z (108.32156 -6.33035 0.00000)
1 MAJALENGKA 52.0 POINT Z (108.22490 -6.83361 0.00000)
2 KUNINGAN 52.0 POINT Z (108.47913 -6.98138 0.00000)
3 PEMALANG 52.0 POINT Z (109.37553 -6.89043 0.00000)
4 TEGAL 52.0 POINT Z (109.12930 -6.87070 0.00000)
In [ ]:
dataGabung = IndoFULL.merge(dataset, left_on="NAME_1", right_on="province_name")
dataGabung.head()
Out[ ]:
GID_0 NAME_0 GID_1 NAME_1 VARNAME_1 NL_NAME_1 TYPE_1 ENGTYPE_1 CC_1 HASC_1 geometry province_id province_name island iso_code capital_city population population_kmsquare active
0 IDN Indonesia IDN.1_1 Aceh None None Propinisi Province 11 ID.AC MULTIPOLYGON (((96.66509 2.12018, 96.66765 2.1... 1 Aceh Sumatra AC Banda Aceh 4906835 86 1003
1 IDN Indonesia IDN.2_1 Bali None None Propinisi Province 51 ID.BA MULTIPOLYGON (((115.59464 -8.81672, 115.59444 ... 2 Bali Kepulauan Nusa Tenggara BA Denpasar 4104900 738 1676
2 IDN Indonesia IDN.3_1 Bangka Belitung None None Propinisi Province 19 ID.BB MULTIPOLYGON (((107.96173 -3.41100, 107.96220 ... 17 Bangka Belitung Sumatra BB Pangkalpinang 1343900 82 1686
3 IDN Indonesia IDN.4_1 Banten None None Propinisi Province 36 ID.BT MULTIPOLYGON (((105.54977 -6.99566, 105.55035 ... 3 Banten Jawa BT Serang 11704877 1298 1961
4 IDN Indonesia IDN.5_1 Bengkulu None None Propinisi Province 17 ID.BE MULTIPOLYGON (((102.37586 -5.36968, 102.38067 ... 4 Bengkulu Sumatra BE Bengkulu 1844800 93 847
In [ ]:
# menampilkan salah satu provinsi
dataGabung[dataGabung.NAME_1=='Yogyakarta'].plot()
Out[ ]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fa5d34d8e50>
In [ ]:
ax = gplt.choropleth(dataGabung, hue='active', edgecolor='olivedrab', linewidth=1, cmap='Purples', legend=True, scheme='FisherJenks', legend_labels=
                    ['<1000', '1000-3000', '3001-7000','7001-15000', '>15000'], alpha = 1, figsize=(30,30))

ax = gplt.pointplot(IndoKota, color = 'red', limits=(3, 50), zorder=2, alpha = 0.2, ax=ax)

ax.set_title('Sebaran kasus positif COVID-19 di Indonesia',fontsize=30)
Out[ ]:
Text(0.5, 1.0, 'Sebaran kasus positif COVID-19 di Indonesia')