{ "cells": [ { "cell_type": "markdown", "id": "joined-gibraltar", "metadata": {}, "source": [ "
\n", "

Geoscope Geohazard Workshop HMGF UGM

\n", "

Materi Dasar Python

\n", "
\n", "
\n", " \n", "
" ] }, { "cell_type": "markdown", "id": "interstate-harvey", "metadata": {}, "source": [ "## Membaca Data Tabular Menggunakan Pandas\n", "\n", "Pada pertemuan di sesi kedua ini kita akan mulai bermain data dan mengaplikasikan beberapa-beberapa algoritma sederhana di Python untuk data tersebut. Data yang kita gunakan adalah katalog gempa Badan Meteorologi dan Geofisika (BMKG) pada kejadian gempa Mw 6.2 di Mamuju pada Januari lalu. Katalog gempa yang digunakan adalah dalam jangka waktu 11 Januari sampai 30 Januari 2021. Format data katalog berbentuk *Comma Separated Values* (CSV) dan sudah disesuaikan agar lebih mudah dibaca menggunakan Python. Peserta dapat mengunduh data ini dengan menekan [download data](data/demo_data_BMKG_Mamuju.csv) atau melalui [github](https://github.com/anangsahroni/geoscope-geohazard-workshop/blob/main/data/demo_data_BMKG_Mamuju.csv) kemudian taruh di dalam folder `data`. Format dari data ini adalah seperti berikut ini:\n", "\n", "\n", "```\n", "time,latitude,longitude,depth,magnitude\n", "2021-01-27T18:43:24.965Z,-2.97,118.83,11,3.7\n", "2021-01-25T16:04:16.363Z,-3.01,118.80,47,2.8\n", "2021-01-24T20:52:08.070Z,-2.94,118.61,10,2.6\n", "2021-01-24T16:52:55.221Z,-3.00,118.80,35,2.4\n", "2021-01-24T02:38:50.171Z,-2.95,118.88,14,3.1\n", "2021-01-21T11:55:35.955Z,-2.90,118.91,10,4.0\n", "```\n", "\n", "Pembacaan data untuk format CSV seperti di atas dapat dilakukan dengan berbagai macam cara seperti menggunakan fungsi bawaan seperti `open`, `numpy.genfromtxt`, atau menggunakan fungsi yang lebih *high level* atau mudah seperti `pandas.read_csv`. Pada praktik ini kita akan menggunakan cara yang paling mudah dan paling pendek yaitu menggunakan `pandas.read_csv` yang berada dalam modul `pandas`. Modul `pandas` memiliki spesialiasi manipulasi data dalam berbagai format, salah satunya yaitu format tabular seperti yang akan kita olah." ] }, { "cell_type": "markdown", "id": "circular-advertising", "metadata": {}, "source": [ "### Mengimpor Modul `pandas`\n", "\n", "Seperti pada pertemuan pertama dimana kita harus mengimpor modul yang akan kita gunakan (`math`), kita juga akan mengimpor `pandas` dan kemudian memberikan alias panggilan `pd` agar untuk penulisan kode lebih mudah." ] }, { "cell_type": "code", "execution_count": 1, "id": "capable-sitting", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "markdown", "id": "assigned-conditioning", "metadata": {}, "source": [ "Cara pengimporan modul atau paket seperti di atas akan lazim kita temui dalam penulisan kode di Python, selain cara tersebut kita juga dapat langsung mengimpor fungsi yang akan kita gunakan, alih-alih mengimpor modul secara umum. Contoh yang terakhir akan kita berikan di pembahasan di bagian belakang." ] }, { "cell_type": "markdown", "id": "excess-auditor", "metadata": {}, "source": [ "### Membaca Data Menggunakan Fungsi `pandas.read_csv`\n", "Fungsi dari `pandas` yang berguna untuk membaca data tabular dalam bentuk CSV adalah `pandas.read_csv` tetapi karena `pandas` sudah kita berikan alias `pd` maka kita cukup mengetikkan `pd.read_csv`. Sebelum kita menggunakan fungsi tersebut kita terlebih dahulu akan membaca petunjuk penggunaan fungsinya dengan menggunakan fungsi `help`:" ] }, { "cell_type": "code", "execution_count": 2, "id": "reserved-cheese", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function read_csv in module pandas.io.parsers:\n", "\n", "read_csv(filepath_or_buffer: Union[ForwardRef('PathLike[str]'), str, IO[~T], io.RawIOBase, io.BufferedIOBase, io.TextIOBase, _io.TextIOWrapper, mmap.mmap], sep=, delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal: str = '.', lineterminator=None, quotechar='\"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options: Union[Dict[str, Any], NoneType] = None)\n", " Read a comma-separated values (csv) file into DataFrame.\n", " \n", " Also supports optionally iterating or breaking of the file\n", " into chunks.\n", " \n", " Additional help can be found in the online docs for\n", " `IO Tools `_.\n", " \n", " Parameters\n", " ----------\n", " filepath_or_buffer : str, path object or file-like object\n", " Any valid string path is acceptable. The string could be a URL. Valid\n", " URL schemes include http, ftp, s3, gs, and file. For file URLs, a host is\n", " expected. A local file could be: file://localhost/path/to/table.csv.\n", " \n", " If you want to pass in a path object, pandas accepts any ``os.PathLike``.\n", " \n", " By file-like object, we refer to objects with a ``read()`` method, such as\n", " a file handle (e.g. via builtin ``open`` function) or ``StringIO``.\n", " sep : str, default ','\n", " Delimiter to use. If sep is None, the C engine cannot automatically detect\n", " the separator, but the Python parsing engine can, meaning the latter will\n", " be used and automatically detect the separator by Python's builtin sniffer\n", " tool, ``csv.Sniffer``. In addition, separators longer than 1 character and\n", " different from ``'\\s+'`` will be interpreted as regular expressions and\n", " will also force the use of the Python parsing engine. Note that regex\n", " delimiters are prone to ignoring quoted data. Regex example: ``'\\r\\t'``.\n", " delimiter : str, default ``None``\n", " Alias for sep.\n", " header : int, list of int, default 'infer'\n", " Row number(s) to use as the column names, and the start of the\n", " data. Default behavior is to infer the column names: if no names\n", " are passed the behavior is identical to ``header=0`` and column\n", " names are inferred from the first line of the file, if column\n", " names are passed explicitly then the behavior is identical to\n", " ``header=None``. Explicitly pass ``header=0`` to be able to\n", " replace existing names. The header can be a list of integers that\n", " specify row locations for a multi-index on the columns\n", " e.g. [0,1,3]. Intervening rows that are not specified will be\n", " skipped (e.g. 2 in this example is skipped). Note that this\n", " parameter ignores commented lines and empty lines if\n", " ``skip_blank_lines=True``, so ``header=0`` denotes the first line of\n", " data rather than the first line of the file.\n", " names : array-like, optional\n", " List of column names to use. If the file contains a header row,\n", " then you should explicitly pass ``header=0`` to override the column names.\n", " Duplicates in this list are not allowed.\n", " index_col : int, str, sequence of int / str, or False, default ``None``\n", " Column(s) to use as the row labels of the ``DataFrame``, either given as\n", " string name or column index. If a sequence of int / str is given, a\n", " MultiIndex is used.\n", " \n", " Note: ``index_col=False`` can be used to force pandas to *not* use the first\n", " column as the index, e.g. when you have a malformed file with delimiters at\n", " the end of each line.\n", " usecols : list-like or callable, optional\n", " Return a subset of the columns. If list-like, all elements must either\n", " be positional (i.e. integer indices into the document columns) or strings\n", " that correspond to column names provided either by the user in `names` or\n", " inferred from the document header row(s). For example, a valid list-like\n", " `usecols` parameter would be ``[0, 1, 2]`` or ``['foo', 'bar', 'baz']``.\n", " Element order is ignored, so ``usecols=[0, 1]`` is the same as ``[1, 0]``.\n", " To instantiate a DataFrame from ``data`` with element order preserved use\n", " ``pd.read_csv(data, usecols=['foo', 'bar'])[['foo', 'bar']]`` for columns\n", " in ``['foo', 'bar']`` order or\n", " ``pd.read_csv(data, usecols=['foo', 'bar'])[['bar', 'foo']]``\n", " for ``['bar', 'foo']`` order.\n", " \n", " If callable, the callable function will be evaluated against the column\n", " names, returning names where the callable function evaluates to True. An\n", " example of a valid callable argument would be ``lambda x: x.upper() in\n", " ['AAA', 'BBB', 'DDD']``. Using this parameter results in much faster\n", " parsing time and lower memory usage.\n", " squeeze : bool, default False\n", " If the parsed data only contains one column then return a Series.\n", " prefix : str, optional\n", " Prefix to add to column numbers when no header, e.g. 'X' for X0, X1, ...\n", " mangle_dupe_cols : bool, default True\n", " Duplicate columns will be specified as 'X', 'X.1', ...'X.N', rather than\n", " 'X'...'X'. Passing in False will cause data to be overwritten if there\n", " are duplicate names in the columns.\n", " dtype : Type name or dict of column -> type, optional\n", " Data type for data or columns. E.g. {'a': np.float64, 'b': np.int32,\n", " 'c': 'Int64'}\n", " Use `str` or `object` together with suitable `na_values` settings\n", " to preserve and not interpret dtype.\n", " If converters are specified, they will be applied INSTEAD\n", " of dtype conversion.\n", " engine : {'c', 'python'}, optional\n", " Parser engine to use. The C engine is faster while the python engine is\n", " currently more feature-complete.\n", " converters : dict, optional\n", " Dict of functions for converting values in certain columns. Keys can either\n", " be integers or column labels.\n", " true_values : list, optional\n", " Values to consider as True.\n", " false_values : list, optional\n", " Values to consider as False.\n", " skipinitialspace : bool, default False\n", " Skip spaces after delimiter.\n", " skiprows : list-like, int or callable, optional\n", " Line numbers to skip (0-indexed) or number of lines to skip (int)\n", " at the start of the file.\n", " \n", " If callable, the callable function will be evaluated against the row\n", " indices, returning True if the row should be skipped and False otherwise.\n", " An example of a valid callable argument would be ``lambda x: x in [0, 2]``.\n", " skipfooter : int, default 0\n", " Number of lines at bottom of file to skip (Unsupported with engine='c').\n", " nrows : int, optional\n", " Number of rows of file to read. Useful for reading pieces of large files.\n", " na_values : scalar, str, list-like, or dict, optional\n", " Additional strings to recognize as NA/NaN. If dict passed, specific\n", " per-column NA values. By default the following values are interpreted as\n", " NaN: '', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan',\n", " '1.#IND', '1.#QNAN', '', 'N/A', 'NA', 'NULL', 'NaN', 'n/a',\n", " 'nan', 'null'.\n", " keep_default_na : bool, default True\n", " Whether or not to include the default NaN values when parsing the data.\n", " Depending on whether `na_values` is passed in, the behavior is as follows:\n", " \n", " * If `keep_default_na` is True, and `na_values` are specified, `na_values`\n", " is appended to the default NaN values used for parsing.\n", " * If `keep_default_na` is True, and `na_values` are not specified, only\n", " the default NaN values are used for parsing.\n", " * If `keep_default_na` is False, and `na_values` are specified, only\n", " the NaN values specified `na_values` are used for parsing.\n", " * If `keep_default_na` is False, and `na_values` are not specified, no\n", " strings will be parsed as NaN.\n", " \n", " Note that if `na_filter` is passed in as False, the `keep_default_na` and\n", " `na_values` parameters will be ignored.\n", " na_filter : bool, default True\n", " Detect missing value markers (empty strings and the value of na_values). In\n", " data without any NAs, passing na_filter=False can improve the performance\n", " of reading a large file.\n", " verbose : bool, default False\n", " Indicate number of NA values placed in non-numeric columns.\n", " skip_blank_lines : bool, default True\n", " If True, skip over blank lines rather than interpreting as NaN values.\n", " parse_dates : bool or list of int or names or list of lists or dict, default False\n", " The behavior is as follows:\n", " \n", " * boolean. If True -> try parsing the index.\n", " * list of int or names. e.g. If [1, 2, 3] -> try parsing columns 1, 2, 3\n", " each as a separate date column.\n", " * list of lists. e.g. If [[1, 3]] -> combine columns 1 and 3 and parse as\n", " a single date column.\n", " * dict, e.g. {'foo' : [1, 3]} -> parse columns 1, 3 as date and call\n", " result 'foo'\n", " \n", " If a column or index cannot be represented as an array of datetimes,\n", " say because of an unparsable value or a mixture of timezones, the column\n", " or index will be returned unaltered as an object data type. For\n", " non-standard datetime parsing, use ``pd.to_datetime`` after\n", " ``pd.read_csv``. To parse an index or column with a mixture of timezones,\n", " specify ``date_parser`` to be a partially-applied\n", " :func:`pandas.to_datetime` with ``utc=True``. See\n", " :ref:`io.csv.mixed_timezones` for more.\n", " \n", " Note: A fast-path exists for iso8601-formatted dates.\n", " infer_datetime_format : bool, default False\n", " If True and `parse_dates` is enabled, pandas will attempt to infer the\n", " format of the datetime strings in the columns, and if it can be inferred,\n", " switch to a faster method of parsing them. In some cases this can increase\n", " the parsing speed by 5-10x.\n", " keep_date_col : bool, default False\n", " If True and `parse_dates` specifies combining multiple columns then\n", " keep the original columns.\n", " date_parser : function, optional\n", " Function to use for converting a sequence of string columns to an array of\n", " datetime instances. The default uses ``dateutil.parser.parser`` to do the\n", " conversion. Pandas will try to call `date_parser` in three different ways,\n", " advancing to the next if an exception occurs: 1) Pass one or more arrays\n", " (as defined by `parse_dates`) as arguments; 2) concatenate (row-wise) the\n", " string values from the columns defined by `parse_dates` into a single array\n", " and pass that; and 3) call `date_parser` once for each row using one or\n", " more strings (corresponding to the columns defined by `parse_dates`) as\n", " arguments.\n", " dayfirst : bool, default False\n", " DD/MM format dates, international and European format.\n", " cache_dates : bool, default True\n", " If True, use a cache of unique, converted dates to apply the datetime\n", " conversion. May produce significant speed-up when parsing duplicate\n", " date strings, especially ones with timezone offsets.\n", " \n", " .. versionadded:: 0.25.0\n", " iterator : bool, default False\n", " Return TextFileReader object for iteration or getting chunks with\n", " ``get_chunk()``.\n", " \n", " .. versionchanged:: 1.2\n", " \n", " ``TextFileReader`` is a context manager.\n", " chunksize : int, optional\n", " Return TextFileReader object for iteration.\n", " See the `IO Tools docs\n", " `_\n", " for more information on ``iterator`` and ``chunksize``.\n", " \n", " .. versionchanged:: 1.2\n", " \n", " ``TextFileReader`` is a context manager.\n", " compression : {'infer', 'gzip', 'bz2', 'zip', 'xz', None}, default 'infer'\n", " For on-the-fly decompression of on-disk data. If 'infer' and\n", " `filepath_or_buffer` is path-like, then detect compression from the\n", " following extensions: '.gz', '.bz2', '.zip', or '.xz' (otherwise no\n", " decompression). If using 'zip', the ZIP file must contain only one data\n", " file to be read in. Set to None for no decompression.\n", " thousands : str, optional\n", " Thousands separator.\n", " decimal : str, default '.'\n", " Character to recognize as decimal point (e.g. use ',' for European data).\n", " lineterminator : str (length 1), optional\n", " Character to break file into lines. Only valid with C parser.\n", " quotechar : str (length 1), optional\n", " The character used to denote the start and end of a quoted item. Quoted\n", " items can include the delimiter and it will be ignored.\n", " quoting : int or csv.QUOTE_* instance, default 0\n", " Control field quoting behavior per ``csv.QUOTE_*`` constants. Use one of\n", " QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) or QUOTE_NONE (3).\n", " doublequote : bool, default ``True``\n", " When quotechar is specified and quoting is not ``QUOTE_NONE``, indicate\n", " whether or not to interpret two consecutive quotechar elements INSIDE a\n", " field as a single ``quotechar`` element.\n", " escapechar : str (length 1), optional\n", " One-character string used to escape other characters.\n", " comment : str, optional\n", " Indicates remainder of line should not be parsed. If found at the beginning\n", " of a line, the line will be ignored altogether. This parameter must be a\n", " single character. Like empty lines (as long as ``skip_blank_lines=True``),\n", " fully commented lines are ignored by the parameter `header` but not by\n", " `skiprows`. For example, if ``comment='#'``, parsing\n", " ``#empty\\na,b,c\\n1,2,3`` with ``header=0`` will result in 'a,b,c' being\n", " treated as the header.\n", " encoding : str, optional\n", " Encoding to use for UTF when reading/writing (ex. 'utf-8'). `List of Python\n", " standard encodings\n", " `_ .\n", " .. versionchanged:: 1.2\n", " \n", " When ``encoding`` is ``None``, ``errors=\"replace\"`` is passed to\n", " ``open()``. Otherwise, ``errors=\"strict\"`` is passed to ``open()``.\n", " This behavior was previously only the case for ``engine=\"python\"``.\n", " dialect : str or csv.Dialect, optional\n", " If provided, this parameter will override values (default or not) for the\n", " following parameters: `delimiter`, `doublequote`, `escapechar`,\n", " `skipinitialspace`, `quotechar`, and `quoting`. If it is necessary to\n", " override values, a ParserWarning will be issued. See csv.Dialect\n", " documentation for more details.\n", " error_bad_lines : bool, default True\n", " Lines with too many fields (e.g. a csv line with too many commas) will by\n", " default cause an exception to be raised, and no DataFrame will be returned.\n", " If False, then these \"bad lines\" will dropped from the DataFrame that is\n", " returned.\n", " warn_bad_lines : bool, default True\n", " If error_bad_lines is False, and warn_bad_lines is True, a warning for each\n", " \"bad line\" will be output.\n", " delim_whitespace : bool, default False\n", " Specifies whether or not whitespace (e.g. ``' '`` or ``' '``) will be\n", " used as the sep. Equivalent to setting ``sep='\\s+'``. If this option\n", " is set to True, nothing should be passed in for the ``delimiter``\n", " parameter.\n", " low_memory : bool, default True\n", " Internally process the file in chunks, resulting in lower memory use\n", " while parsing, but possibly mixed type inference. To ensure no mixed\n", " types either set False, or specify the type with the `dtype` parameter.\n", " Note that the entire file is read into a single DataFrame regardless,\n", " use the `chunksize` or `iterator` parameter to return the data in chunks.\n", " (Only valid with C parser).\n", " memory_map : bool, default False\n", " If a filepath is provided for `filepath_or_buffer`, map the file object\n", " directly onto memory and access the data directly from there. Using this\n", " option can improve performance because there is no longer any I/O overhead.\n", " float_precision : str, optional\n", " Specifies which converter the C engine should use for floating-point\n", " values. The options are ``None`` or 'high' for the ordinary converter,\n", " 'legacy' for the original lower precision pandas converter, and\n", " 'round_trip' for the round-trip converter.\n", " \n", " .. versionchanged:: 1.2\n", " \n", " storage_options : dict, optional\n", " Extra options that make sense for a particular storage connection, e.g.\n", " host, port, username, password, etc., if using a URL that will\n", " be parsed by ``fsspec``, e.g., starting \"s3://\", \"gcs://\". An error\n", " will be raised if providing this argument with a non-fsspec URL.\n", " See the fsspec and backend storage implementation docs for the set of\n", " allowed keys and values.\n", " \n", " .. versionadded:: 1.2\n", " \n", " Returns\n", " -------\n", " DataFrame or TextParser\n", " A comma-separated values (csv) file is returned as two-dimensional\n", " data structure with labeled axes.\n", " \n", " See Also\n", " --------\n", " DataFrame.to_csv : Write DataFrame to a comma-separated values (csv) file.\n", " read_csv : Read a comma-separated values (csv) file into DataFrame.\n", " read_fwf : Read a table of fixed-width formatted lines into DataFrame.\n", " \n", " Examples\n", " --------\n", " >>> pd.read_csv('data.csv') # doctest: +SKIP\n", "\n" ] } ], "source": [ "help(pd.read_csv)" ] }, { "cell_type": "markdown", "id": "endangered-holiday", "metadata": {}, "source": [ "Terdapat banyak sekali parameter yang harus kita isikan (atau kita biasa sebut sebagai argumen). Argumen-argumen yang diikuti tanda `=` dan isi parameternya (contoh `delimiter=None`) merupakan argumen yang sudah memiliki nilai *default*, dalam contoh ini untuk argumen `delimiter` apabila tidak kita isi maka secara otomatis akan terisi dengan nilai `None`. Dengan demikian, tidak semua argumen dalam sebuah fungsi harus kita isikan. Pada `pd.read_csv` ini sebenarnya fungsi akan mendeteksi secara otomatis delimiter (tanda pemisah kolom, dalam contoh kita yaitu koma (,)) yang ada di dalam data yang akan dibaca. Saatnya kita membaca data:" ] }, { "cell_type": "code", "execution_count": 3, "id": "removable-february", "metadata": {}, "outputs": [], "source": [ "data = pd.read_csv(\"data/demo_data_BMKG_Mamuju.csv\")" ] }, { "cell_type": "markdown", "id": "statutory-bearing", "metadata": {}, "source": [ "Pada contoh kode pembacaan di atas ini kita hanya mengisikan satu argumen yaitu data yang akan kita gunakan (dalam bentuk `String` karena merupakan kumpulan karakter non angka). Argumen-argumen lain kita tidak isikan karena fungsi ini secara otomatis akan mendeteksi format data yang kita gunakan, dengan catatan data kita sudah rapi dan bersih. Untuk melihat data yang sudah kita baca kita dapat memanggilnya dengan menulis `data` seperti pada kode di bawah ini." ] }, { "cell_type": "code", "execution_count": 4, "id": "technological-animation", "metadata": { "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", "
timelatitudelongitudedepthmagnitude
02021-01-27T18:43:24.965Z-2.97118.83113.7
12021-01-25T16:04:16.363Z-3.01118.80472.8
22021-01-24T20:52:08.070Z-2.94118.61102.6
32021-01-24T16:52:55.221Z-3.00118.80352.4
42021-01-24T02:38:50.171Z-2.95118.88143.1
\n", "
" ], "text/plain": [ " time latitude longitude depth magnitude\n", "0 2021-01-27T18:43:24.965Z -2.97 118.83 11 3.7\n", "1 2021-01-25T16:04:16.363Z -3.01 118.80 47 2.8\n", "2 2021-01-24T20:52:08.070Z -2.94 118.61 10 2.6\n", "3 2021-01-24T16:52:55.221Z -3.00 118.80 35 2.4\n", "4 2021-01-24T02:38:50.171Z -2.95 118.88 14 3.1" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "markdown", "id": "swiss-label", "metadata": {}, "source": [ "Seperti yang sudah kita bahas diawal, `pd.read_csv` akan secara otomatis mendeteksi format data yang kita baca. Saat data kita panggil dengan perintah `data` maka akan muncul tabel seperti di atas. Kita dapat mengecek apakah data sudah terbaca dengan baik, pada contoh di atas data terbaca dengan baik karena masing-masing kolom terpisahkan dengan benar. Bagaimana dengan contoh pembacaan yang masih salah?" ] }, { "cell_type": "code", "execution_count": 5, "id": "presidential-snowboard", "metadata": { "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", "
time,latitude,longitude,depth,magnitude
2021-01-27T18:43:24965Z,-297,11883,11,37
2021-01-25T16:04:16363Z,-301,11880,47,28
2021-01-24T20:52:08070Z,-294,11861,10,26
2021-01-24T16:52:55221Z,-300,11880,35,24
2021-01-24T02:38:50171Z,-295,11888,14,31
\n", "
" ], "text/plain": [ " time,latitude,longitude,depth,magnitude\n", "2021-01-27T18:43:24 965Z,-2 97,118 83,11,3 7\n", "2021-01-25T16:04:16 363Z,-3 01,118 80,47,2 8\n", "2021-01-24T20:52:08 070Z,-2 94,118 61,10,2 6\n", "2021-01-24T16:52:55 221Z,-3 00,118 80,35,2 4\n", "2021-01-24T02:38:50 171Z,-2 95,118 88,14,3 1" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_salah = pd.read_csv(\"./demo_data_BMKG_MamujuEQ.csv\", delimiter=\".\")\n", "data_salah.head()" ] }, { "cell_type": "markdown", "id": "endless-phrase", "metadata": {}, "source": [ "Pada contoh pembacaan yang salah pada kode diatas, kita memasukkan nilai untuk argumen `delimiter` yaitu berupa tanda titik `.`, padahal pemisah antar kolom pada file CSV kita berupa tanda koma (,). Hal tersebut membuat pemisahan antar kolom tidak benar." ] }, { "cell_type": "markdown", "id": "prerequisite-sucking", "metadata": {}, "source": [ "## Membedakan Jenis Data pada Kolom Data Katalog\n", "\n", "Setelah berhasil membaca data, langkah selanjutnya adalah melihat beberapa tipe-tipe data pada masing-masing kolom untuk mengingatkan kembali pengetahuan kita tentang `String`, `Float`, dan `Integer`. Pada data yang dibaca menggunakan `pd.read_csv`, tabel secara umum memiliki format tersendiri yaitu `DataFrame`, format yang dibuat oleh `pandas`." ] }, { "cell_type": "code", "execution_count": null, "id": "cardiovascular-election", "metadata": { "scrolled": false }, "outputs": [], "source": [ "help(data)" ] }, { "cell_type": "markdown", "id": "limiting-syracuse", "metadata": {}, "source": [ "Masing-masing kolom sendiri memiliki jenis data yang beragam tergantung dengan isi dari setiap kolom tersebut. Pada contoh yang pertama kita akan melihat jenis data yang ada dalam kolom `longitude`. Memanggil salah satu kolom dalam pandas cukup mudah yaitu kita hanya perlu menuliskan `data` kemudian diikuti dengan `[namakolom]`, maka untuk kolom `longitude` kita dapat melihat tipe datanya dengan:" ] }, { "cell_type": "code", "execution_count": 7, "id": "crazy-reform", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('float64')" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['longitude'].dtype" ] }, { "cell_type": "markdown", "id": "arbitrary-budapest", "metadata": {}, "source": [ "Kolom `longitude` ternyata data di dalamnya memiliki format data `Float` karena merupakan bilangan yang tidak bulat atau desimal. Apabila ingin melihat data dalam kolom ini kita dapat menuliskan kode:" ] }, { "cell_type": "code", "execution_count": 8, "id": "moving-jacket", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "0 118.83\n", "1 118.80\n", "2 118.61\n", "3 118.80\n", "4 118.88\n", "5 118.91\n", "6 118.86\n", "7 119.50\n", "8 118.88\n", "9 118.88\n", "10 118.91\n", "11 119.03\n", "12 118.94\n", "13 118.94\n", "14 118.84\n", "15 118.86\n", "16 118.92\n", "17 118.95\n", "18 118.92\n", "19 118.88\n", "20 118.93\n", "21 118.84\n", "22 118.85\n", "23 118.91\n", "24 119.01\n", "25 118.94\n", "26 118.93\n", "27 118.93\n", "28 118.91\n", "29 118.94\n", "30 118.89\n", "31 118.88\n", "32 118.95\n", "33 118.94\n", "34 118.90\n", "35 118.90\n", "36 118.88\n", "37 118.88\n", "38 118.93\n", "39 118.89\n", "40 118.92\n", "41 119.48\n", "Name: longitude, dtype: float64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['longitude']" ] }, { "cell_type": "markdown", "id": "speaking-morris", "metadata": {}, "source": [ "Format data yang berbeda kita temui pada kolom `depth` dimana semua data pada kolom ini berupa bilangan bulat sehingga tipe datanya seharusnya `Integer`." ] }, { "cell_type": "code", "execution_count": 9, "id": "several-camera", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('int64')" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['depth'].dtype" ] }, { "cell_type": "markdown", "id": "alien-graduation", "metadata": {}, "source": [ "Bagaimana dengan kolom `time`? Apakah tipe data pada kolom ini akan berupa `String`?" ] }, { "cell_type": "code", "execution_count": 10, "id": "tired-recovery", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('O')" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data['time'].dtype" ] }, { "cell_type": "markdown", "id": "planned-sector", "metadata": {}, "source": [ "Ternyata pada kolom `time` tipe datanya adalah `Object` yang disingkat `O`, tipe ini merupakan kita yang lebih lanjut karena dapat berupa jenis data apapun, terkecuali `Integer` dan `Float`, dalam contoh ini." ] }, { "cell_type": "markdown", "id": "brazilian-apparatus", "metadata": {}, "source": [ "## Mempelajari Data Bertipe `list` dan `tuple`\n", "\n", "### List\n", "Apabila kita sudah dapat membedakan jenis data untuk nilai yang berupa satuan (tidak berupa kumpulan nilai) yaitu seperti `String`, `Float`, dan `Integer`. Bagaimana dengan jenis atau tipe data yang merupakan kumpulan-kumpulan angka atau huruf? Seperti contoh pada data di bawah ini:\n", "\n", "```python\n", "deret = [1,2,3,4,5]\n", "alamat = [\"Yogyakarta\", \"Semarang\", \"Ambon\", \"Padang\"]\n", "```\n", "\n", "Pada `deret` kita tahu bahwa isinya merupakan kumpulan dari `Integer` dan pada `alamat` isinya merupakan kumpulan `String` tetapi untuk `deret` dan `alamat` secara utuh sendiri dapat kita dapat sebut sebagai apa? Kumpulan-kumpulan data dalam bentuk daftar satu dimensi seperti pada contoh `deret` dan `alamat` tersebut biasa kita sebut sebagai data berjenis `List`, atau secara matematika, fisika, ataupun ilmu komputer juga dapat kita sebut sebagai sebuah vektor, karena vektor pun bentuknya biasanya diwakili dari kumpulan angka-angka dalam satu baris seperti di atas.\n", "\n", "Setiap kolom dari data yang sebelumnya kita baca menggunakan `pd.read_csv` merupakan salah satu bentuk `List` karena berupa deretan angka dalam 1 dimensi saja atau 1 baris saja. Untuk membaca kolom kedalam bentuk `List` kita dapat menggunakan fungsi bawaan dari Python yaitu `list`:" ] }, { "cell_type": "code", "execution_count": 11, "id": "interpreted-poster", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[118.83,\n", " 118.8,\n", " 118.61,\n", " 118.8,\n", " 118.88,\n", " 118.91,\n", " 118.86,\n", " 119.5,\n", " 118.88,\n", " 118.88,\n", " 118.91,\n", " 119.03,\n", " 118.94,\n", " 118.94,\n", " 118.84,\n", " 118.86,\n", " 118.92,\n", " 118.95,\n", " 118.92,\n", " 118.88,\n", " 118.93,\n", " 118.84,\n", " 118.85,\n", " 118.91,\n", " 119.01,\n", " 118.94,\n", " 118.93,\n", " 118.93,\n", " 118.91,\n", " 118.94,\n", " 118.89,\n", " 118.88,\n", " 118.95,\n", " 118.94,\n", " 118.9,\n", " 118.9,\n", " 118.88,\n", " 118.88,\n", " 118.93,\n", " 118.89,\n", " 118.92,\n", " 119.48]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude = list(data['longitude'])\n", "longitude" ] }, { "cell_type": "markdown", "id": "voluntary-realtor", "metadata": {}, "source": [ "Ada metode yang dapat diaplikasikan untuk data berjenis`List` ini, yang paling sederhana adalah fungsi `len` untuk mengetahui panjang dari `List`:" ] }, { "cell_type": "code", "execution_count": 12, "id": "intensive-substitute", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "42" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(longitude)" ] }, { "cell_type": "markdown", "id": "saving-steering", "metadata": {}, "source": [ "#### Indeks pada `List`\n", "Data berjenis `List` diindeks dengan indeks awalan adalah 0 sehingga apabila akan memanggil data pertama dalam `List` longitude kita dapat menggunakan:" ] }, { "cell_type": "code", "execution_count": 13, "id": "historic-preserve", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "118.83" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude[0]" ] }, { "cell_type": "markdown", "id": "emotional-concrete", "metadata": {}, "source": [ "Sehingga untuk data terakhir pada `List` `longitude` kita dapat memanggilnya dengan" ] }, { "cell_type": "code", "execution_count": 14, "id": "common-rental", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "119.48" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude[41]" ] }, { "cell_type": "markdown", "id": "electronic-heritage", "metadata": {}, "source": [ "Karena diindeks dari 0 sehingga data terakhir berada pada indeks 41. Agar tidak bingung, Python memberikan alternatif apabila kita ingin memanggil data dari bagian belakang, yaitu dengan menambahakan simbol negatif (-) seperti pada contoh ini:" ] }, { "cell_type": "code", "execution_count": 15, "id": "final-malpractice", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "119.48" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude[-1]" ] }, { "cell_type": "markdown", "id": "selective-polyester", "metadata": {}, "source": [ "Berbeda dengan indeks dari bagian awal yang dimulai dari 0, pada indeks dari akhir kita mulai dengan -1. Untuk mengecek apakah `longitude[41]` dan `longitude[-1]` sama kita dapat menggunakan:" ] }, { "cell_type": "code", "execution_count": 16, "id": "divine-vaccine", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude[41] == longitude[-1]" ] }, { "cell_type": "markdown", "id": "acute-north", "metadata": {}, "source": [ "Hasilnya akan `True` karena nilai keduanya sama, contoh yang lain:" ] }, { "cell_type": "code", "execution_count": 17, "id": "embedded-military", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude[40] == longitude[-2]" ] }, { "cell_type": "markdown", "id": "mexican-joining", "metadata": {}, "source": [ "Hasilnya juga akan `True`." ] }, { "cell_type": "markdown", "id": "threaded-frost", "metadata": {}, "source": [ "#### *Slicing* pada `List`\n", "Bagaimana bila yang akan kita panggil datanya berjumlah lebih dari satu? Misalkan kita akan mengambil 4 data pertama:" ] }, { "cell_type": "code", "execution_count": 18, "id": "coral-sweet", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[118.83, 118.8, 118.61, 118.8]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude_empat_awal = longitude[0:4]\n", "longitude_empat_awal" ] }, { "cell_type": "markdown", "id": "understanding-celebration", "metadata": {}, "source": [ "Metode di atas sering kita kenal nanti sebagai metode `slicing`, metode ini juga berlaku untuk indeks yang dari belakang:" ] }, { "cell_type": "code", "execution_count": 19, "id": "shaped-allocation", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[118.93, 118.89, 118.92]" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "longitude_tiga_akhir = longitude[-4:-1]\n", "longitude_tiga_akhir" ] }, { "cell_type": "markdown", "id": "conventional-horror", "metadata": {}, "source": [ "
\n", "

Kuis Alert ⚠️⚠️

\n", "

Quiz Alert ⚠️⚠️: **Nama siapa saja yang akan muncul dengan `slicing` seperti di bawah?**

\n", "
\n", "\n", "```python\n", "daftar_peserta = [\"Budi\", \"Joni\", \"Putri\", \"Indah\", \"Ade\", \"Rahma\"]\n", "kuis_slicing = daftar_peserta[1:-2]\n", "kuis_slicing\n", "```" ] }, { "cell_type": "markdown", "id": "promising-commander", "metadata": {}, "source": [ "#### Mengedit `List`" ] }, { "cell_type": "markdown", "id": "impressed-opening", "metadata": {}, "source": [ "Kita dapat menghapus, menambah, atau mengedit isi dari `List` yang kita punya, pada contoh mengedit `List` ini kita akan menggunakan `List` baru yang lebih pendek dan sederhana jadi untuk `List` dan data gempa kita simpan dan tidak ubah-ubah. Kasus ini adalah pendaftaran peserta untuk mengikuti workshop:" ] }, { "cell_type": "code", "execution_count": 20, "id": "banned-marathon", "metadata": {}, "outputs": [], "source": [ "daftar_peserta = [\"Budi\", \"Joni\", \"Putri\", \"Indah\", \"Ade\", \"Rahma\"]" ] }, { "cell_type": "markdown", "id": "challenging-circular", "metadata": {}, "source": [ "Ternyata ada peserta yang mendaftar terlambat yaitu Ari, untuk memasukkan Ari ke daftar peserta kita dapat menggunakan metode `append`." ] }, { "cell_type": "code", "execution_count": 21, "id": "conscious-effort", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Budi', 'Joni', 'Putri', 'Indah', 'Ade', 'Rahma', 'Ari']" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "daftar_peserta.append(\"Ari\")\n", "daftar_peserta" ] }, { "cell_type": "markdown", "id": "infrared-allowance", "metadata": {}, "source": [ "Ari sudah masuk menjadi peserta, walaupun datangnya terlambat sehingga dia duduk di indeks paling terakhir karena metode `append`. Ternyata ada lagi peserta yang belum tercatat yaitu Dina, karena Dina ternyata sudah mendaftar pertama kali tetapi lupa tercatat, panitia kemudian memasukkan Dina ke bangku nomor satu dengan metode `insert` pada indeks 0: " ] }, { "cell_type": "code", "execution_count": 22, "id": "historic-concentrate", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Dina', 'Budi', 'Joni', 'Putri', 'Indah', 'Ade', 'Rahma', 'Ari']" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "daftar_peserta.insert(0,\"Dina\")\n", "daftar_peserta" ] }, { "cell_type": "markdown", "id": "accessible-upset", "metadata": {}, "source": [ "Workshop kemudian selesai dan dilanjutkan dengan ujian, Joni ternyata yang paling cepat sehingga dia keluar kelas workshop terlebih dahulu. Untuk menghapus Joni dari daftar peserta:" ] }, { "cell_type": "code", "execution_count": 23, "id": "wooden-liberal", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "['Dina', 'Budi', 'Putri', 'Indah', 'Ade', 'Rahma', 'Ari']" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "daftar_peserta.remove(\"Joni\")\n", "daftar_peserta" ] }, { "cell_type": "markdown", "id": "bulgarian-massachusetts", "metadata": {}, "source": [ "Bagaimana apabila mengganti langsung menggunakan indeks? Karena ternyata nama Budi bukan Budi tetapi Rudi:" ] }, { "cell_type": "code", "execution_count": 24, "id": "proprietary-vatican", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Dina', 'Rudi', 'Putri', 'Indah', 'Ade', 'Rahma', 'Ari']" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "daftar_peserta[1] = \"Rudi\"\n", "daftar_peserta" ] }, { "cell_type": "markdown", "id": "vocational-metallic", "metadata": {}, "source": [ "Masih banyak metode `List` lain yang dapat kita gunakan, secara lebih lengkap dapat dibuka di `help(list)`" ] }, { "cell_type": "code", "execution_count": 25, "id": "compliant-rogers", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on class list in module builtins:\n", "\n", "class list(object)\n", " | list(iterable=(), /)\n", " | \n", " | Built-in mutable sequence.\n", " | \n", " | If no argument is given, the constructor creates a new empty list.\n", " | The argument must be an iterable if specified.\n", " | \n", " | Methods defined here:\n", " | \n", " | __add__(self, value, /)\n", " | Return self+value.\n", " | \n", " | __contains__(self, key, /)\n", " | Return key in self.\n", " | \n", " | __delitem__(self, key, /)\n", " | Delete self[key].\n", " | \n", " | __eq__(self, value, /)\n", " | Return self==value.\n", " | \n", " | __ge__(self, value, /)\n", " | Return self>=value.\n", " | \n", " | __getattribute__(self, name, /)\n", " | Return getattr(self, name).\n", " | \n", " | __getitem__(...)\n", " | x.__getitem__(y) <==> x[y]\n", " | \n", " | __gt__(self, value, /)\n", " | Return self>value.\n", " | \n", " | __iadd__(self, value, /)\n", " | Implement self+=value.\n", " | \n", " | __imul__(self, value, /)\n", " | Implement self*=value.\n", " | \n", " | __init__(self, /, *args, **kwargs)\n", " | Initialize self. See help(type(self)) for accurate signature.\n", " | \n", " | __iter__(self, /)\n", " | Implement iter(self).\n", " | \n", " | __le__(self, value, /)\n", " | Return self<=value.\n", " | \n", " | __len__(self, /)\n", " | Return len(self).\n", " | \n", " | __lt__(self, value, /)\n", " | Return self\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdaftar_nilai\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'append'" ] } ], "source": [ "daftar_nilai.append(10)" ] }, { "cell_type": "markdown", "id": "polish-poster", "metadata": {}, "source": [ "Begitupula mengedit nilai yang ada dalam `Tuple` tersebut:" ] }, { "cell_type": "code", "execution_count": 28, "id": "individual-pocket", "metadata": { "scrolled": true }, "outputs": [ { "ename": "TypeError", "evalue": "'tuple' object does not support item assignment", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdaftar_nilai\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: 'tuple' object does not support item assignment" ] } ], "source": [ "daftar_nilai[1]=10" ] }, { "cell_type": "markdown", "id": "removable-canadian", "metadata": {}, "source": [ "Fun fact: `String` memiliki sifat `Tuple`" ] }, { "cell_type": "code", "execution_count": 29, "id": "level-stable", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'R'" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nama = \"Rudi\"\n", "nama[0]" ] }, { "cell_type": "code", "execution_count": 30, "id": "veterinary-cartoon", "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "'str' object has no attribute 'append'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnama\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"s\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'str' object has no attribute 'append'" ] } ], "source": [ "nama.append(\"s\")" ] }, { "cell_type": "code", "execution_count": 31, "id": "numerous-turner", "metadata": { "scrolled": true }, "outputs": [ { "ename": "TypeError", "evalue": "'str' object does not support item assignment", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnama\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"B\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mTypeError\u001b[0m: 'str' object does not support item assignment" ] } ], "source": [ "nama[0] = \"B\"" ] }, { "cell_type": "markdown", "id": "contrary-wrist", "metadata": {}, "source": [ "## *Looping*" ] }, { "cell_type": "markdown", "id": "introductory-working", "metadata": {}, "source": [ "Proses *looping* merupakan proses mengulang-ngulang sebuah proses sampai kondisi tertentu tercapai. Pada Python terdapat dua jenis *looping* yaitu `for` dan `while`. `for` akan melakukan *looping* dengan sampai pada batas jumlah *looping* atau sampai pada syarat tertentu yang sudah tercapai sedangkan `while` akan terus berjalan saat syaratnya masih terpenuhi. Sebelum kita menggunakan `for` untuk mengkonversi `String` pada kolom `time` menjadi data berjenis `datetime.datetime`, kita bermain dengan `list` yang lebih sederhana dahulu:" ] }, { "cell_type": "code", "execution_count": 32, "id": "proprietary-palestinian", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nama: Dina\n", "Nama: Rudi\n", "Nama: Putri\n", "Nama: Indah\n", "Nama: Ade\n", "Nama: Rahma\n", "Nama: Ari\n" ] } ], "source": [ "for peserta in daftar_peserta:\n", " print(\"Nama: \", peserta)" ] }, { "cell_type": "markdown", "id": "saved-medicaid", "metadata": {}, "source": [ "Pada contoh di atas, kita dapat membaca kode seperti ini: untuk setiap peserta di daftar peserta, kita cetak nama peserta didahului dengan tulisan \"Nama: \", looping akan berjalan mulai dari Dina, sehingga tulisan \"Nama: Dina\" akan tercetak pertama kali, dilanjutkan dengan Rudi, dan yang terakhir adalah Ari." ] }, { "cell_type": "code", "execution_count": 33, "id": "exotic-anderson", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dina lulus\n", "Rudi lulus\n", "Putri lulus\n", "Indah lulus\n", "Ade lulus\n", "Rahma lulus\n", "Ari lulus\n" ] } ], "source": [ "for peserta in daftar_peserta:\n", " print(peserta, \" lulus\")" ] }, { "cell_type": "markdown", "id": "physical-american", "metadata": {}, "source": [ "Kita juga dapat bermain dengan `List` yang berisi angka, misalnya pada contoh ini kita akan menambahkan setiap nilai pada daftar nilai dengan 1:" ] }, { "cell_type": "code", "execution_count": 34, "id": "forbidden-glucose", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nilai= (10, 9, 10, 8, 7, 8)\n", "nilai+1= 11\n", "nilai+1= 10\n", "nilai+1= 11\n", "nilai+1= 9\n", "nilai+1= 8\n", "nilai+1= 9\n" ] } ], "source": [ "print(\"Nilai= \", daftar_nilai)\n", "\n", "for nilai in daftar_nilai:\n", " print(\"nilai+1= \",nilai+1)" ] }, { "cell_type": "markdown", "id": "assigned-submission", "metadata": {}, "source": [ "Contoh di bawah ini kita memanfaatkan metode `append` untuk membuat daftar nilai baru yang sudah ditambah dengan 1. Karena `for` loop mengevaluasi setiap `nilai` dalam `daftar_nilai` maka untuk setiap `nilai`, `daftar_nilai_tambah_satu` akan di`append` dengan `nilai+1`, sehingga hasilnya adalah `List` baru yang isinya nilai awal ditambah satu:" ] }, { "cell_type": "code", "execution_count": 35, "id": "other-billion", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nilai asli= (10, 9, 10, 8, 7, 8)\n", "Nilai+1 = [11, 10, 11, 9, 8, 9]\n" ] } ], "source": [ "daftar_nilai_tambah_satu = []\n", "for nilai in daftar_nilai:\n", " daftar_nilai_tambah_satu.append(nilai+1)\n", " \n", "print(\"Nilai asli= \", daftar_nilai)\n", "print(\"Nilai+1 = \", daftar_nilai_tambah_satu)" ] }, { "cell_type": "markdown", "id": "functioning-holly", "metadata": {}, "source": [ "Kita kembali ke data katalog gempabumi yang sudah kita baca menggunakan `pd.read_csv` tadi. Pada `data` kita mendapatkan satu kolom yang menunjukkan waktu yaitu kolom `time`, saat kita lihat tipe datanya tadi kolom ini masih berupa `Object` secara umum, dan mengarah ke jenis data `String`. Python memiliki jenis data khusus untuk menunjukkan waktu yaitu salah satunya adalah `datetime.datetime`. Dengan demikian kolom `time` harus kita konversi ke dalam tipe `datetime.datetime`. Proses konversi ini dapat dilakukan menggunakan modul `datetime` yang merupakan bawaan dari Python. " ] }, { "cell_type": "code", "execution_count": 36, "id": "muslim-fortune", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "time_pertama 2021-01-27T18:43:24.965Z\n", "tipe data \n" ] } ], "source": [ "list_time = list(data['time'])\n", "time_pertama = list_time[0]\n", "print(\"time_pertama\", time_pertama)\n", "print(\"tipe data\",type(time_pertama))" ] }, { "cell_type": "markdown", "id": "cross-gender", "metadata": {}, "source": [ "Kita dapatkan hasil bahwa untuk waktu pertama tipe datanya adalah masih berupa `String` yang ditunjukkan dengan tulisan `String`. Agar data waktu dapat diolah kita dapat mengubah ke format `datetime.datetime` dengan:\n", "\n", "```python\n", "datetime.datetime.strptime()\n", "```\n", "\n", "Sebelumnya kita lihat dulu fungsi `help` untuk `datetime.datetime.strptime()`:" ] }, { "cell_type": "code", "execution_count": 37, "id": "pleasant-trash", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on built-in function strptime:\n", "\n", "strptime(...) method of builtins.type instance\n", " string, format -> new datetime parsed from a string (like time.strptime()).\n", "\n" ] } ], "source": [ "import datetime\n", "help(datetime.datetime.strptime)" ] }, { "cell_type": "markdown", "id": "framed-marina", "metadata": {}, "source": [ "Ternyata fungsi ini merupakan turunan dari `time.strptime` sehingga untuk melihat petunjukanya kita dapat menggunakan:" ] }, { "cell_type": "code", "execution_count": 38, "id": "tamil-agent", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on built-in function strptime in module time:\n", "\n", "strptime(...)\n", " strptime(string, format) -> struct_time\n", " \n", " Parse a string to a time tuple according to a format specification.\n", " See the library reference manual for formatting codes (same as\n", " strftime()).\n", " \n", " Commonly used format codes:\n", " \n", " %Y Year with century as a decimal number.\n", " %m Month as a decimal number [01,12].\n", " %d Day of the month as a decimal number [01,31].\n", " %H Hour (24-hour clock) as a decimal number [00,23].\n", " %M Minute as a decimal number [00,59].\n", " %S Second as a decimal number [00,61].\n", " %z Time zone offset from UTC.\n", " %a Locale's abbreviated weekday name.\n", " %A Locale's full weekday name.\n", " %b Locale's abbreviated month name.\n", " %B Locale's full month name.\n", " %c Locale's appropriate date and time representation.\n", " %I Hour (12-hour clock) as a decimal number [01,12].\n", " %p Locale's equivalent of either AM or PM.\n", " \n", " Other codes may be available on your platform. See documentation for\n", " the C library strftime function.\n", "\n" ] } ], "source": [ "import time\n", "help(time.strptime)" ] }, { "cell_type": "markdown", "id": "whole-typing", "metadata": {}, "source": [ "Berdasarkan petunjuk di atas kita harus memasukkan `String` kita yaitu `time_pertama` sebagai argumen pertama kemudian diikuti format dari penulisan waktu kita. Waktu kita ditulis dengan menggunakan `2021-01-27T18:43:24.965Z` sehingga menurut pentujuk di atas kita akan menuliskan format `'%Y-%m-%dT%H:%M:%S.%fZ'` sehingga kode untuk konversi menjadi:" ] }, { "cell_type": "code", "execution_count": 39, "id": "wrapped-shakespeare", "metadata": {}, "outputs": [], "source": [ "time_pertama_dt = datetime.datetime.strptime(time_pertama, '%Y-%m-%dT%H:%M:%S.%fZ')" ] }, { "cell_type": "code", "execution_count": 40, "id": "novel-ottawa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "time_pertama 2021-01-27T18:43:24.965Z\n", "time_pertama_dt 2021-01-27 18:43:24.965000\n" ] } ], "source": [ "print(\"time_pertama\", time_pertama)\n", "print(\"time_pertama_dt\", time_pertama_dt)" ] }, { "cell_type": "markdown", "id": "comparable-seattle", "metadata": {}, "source": [ "Dari hasil di atas sekilas nampak sama, mari kita lihat tipe masing-masing, baik yang sebelum dikonversi dengan yang sudah dikonversi:" ] }, { "cell_type": "code", "execution_count": 41, "id": "outside-novel", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tipe data time_pertama \n", "tipe data time_pertama_dt \n" ] } ], "source": [ "print(\"tipe data time_pertama\", type(time_pertama))\n", "print(\"tipe data time_pertama_dt\", type(time_pertama_dt))" ] }, { "cell_type": "markdown", "id": "gentle-sellers", "metadata": {}, "source": [ "Dengan fungsi `type` dapat dilihat dengan jelas bahwa untuk format yang sudah dikonversi berubah menjadi `datetime.datetime` sesuai dengan salah satu standar format data berjenis waktu pada Python." ] }, { "cell_type": "markdown", "id": "dynamic-geography", "metadata": {}, "source": [ "Selanjutnya kita akan mengaplikasikan `for` loop untuk mengonversi semua data dalam `List` `list_time` agar tidak perlu melakukannya satu per satu." ] }, { "cell_type": "code", "execution_count": 42, "id": "antique-potato", "metadata": {}, "outputs": [], "source": [ "list_time_dalam_datetime = []\n", "for time in list_time:\n", " time_terkonversi = datetime.datetime.strptime(time, '%Y-%m-%dT%H:%M:%S.%fZ')\n", " list_time_dalam_datetime.append(time_terkonversi)" ] }, { "cell_type": "markdown", "id": "skilled-cartridge", "metadata": {}, "source": [ "**Looping** di atas di awali dengan membuat `List` kosong yang nantinya akan diisi dengan waktu yang sudah dikonversi menjadi format `datetime.datetime`. Proses looping pertama yaitu untuk data pertama pada `list_time`, data ini kemudian akan dikonversi menggunakan fungsi `datetime.datetime.strptime` yang tadi sudah kita coba untuk waktu pertama. Setelah dikonversi, waktu terkonversi akan dimasukkan ke dalam `List` `list_time_dalam_datetime` menggunakan metode `append`. Proses konversi dan `append` ini diulang sampai semua data pada `list_time` terkonversi dan masuk dalam `list_time_dalam_datetime`. Pengecekean kita lakukan dengan memanggil `list_time_dalam_datetime`." ] }, { "cell_type": "code", "execution_count": 43, "id": "british-import", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[datetime.datetime(2021, 1, 27, 18, 43, 24, 965000),\n", " datetime.datetime(2021, 1, 25, 16, 4, 16, 363000),\n", " datetime.datetime(2021, 1, 24, 20, 52, 8, 70000),\n", " datetime.datetime(2021, 1, 24, 16, 52, 55, 221000),\n", " datetime.datetime(2021, 1, 24, 2, 38, 50, 171000)]" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list_time_dalam_datetime[:5]" ] }, { "cell_type": "markdown", "id": "wired-narrative", "metadata": {}, "source": [ "List di atas semua anggotanya sudah dalam bentuk `datetime.datetime`." ] }, { "cell_type": "markdown", "id": "tribal-alarm", "metadata": {}, "source": [ "Setelah terkonversi kita sudah dapat menggunakan kolom waktu ini untuk analisisnya, contohnya untuk mengeplot setiap waktu kejadiandan berapa magnitudonya, plot ini hanya preview dan akan dijelaskan di bagian belakang secara lebih mendetail:" ] }, { "cell_type": "code", "execution_count": 44, "id": "changing-helmet", "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import matplotlib.dates as mdates\n", "\n", "# mendefinisikan list waktu dan magnitudo\n", "waktu = list_time_dalam_datetime\n", "magnitudo = list(data['magnitude'])\n", "\n", "# membuat plot\n", "fig, ax = plt.subplots()\n", "ax.scatter(waktu, magnitudo, color=\"blue\")\n", "ax.set_title(\"Grafik Magnitudo terhadap Waktu Kejadian \\nGempa Mamuju\")\n", "ax.set_xlabel(\"Waktu\")\n", "ax.set_ylabel(\"Magnitudo (M)\")\n", "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y-%m-%d\"))\n", "plt.xticks(rotation=65)\n", "plt.grid()\n" ] }, { "cell_type": "markdown", "id": "interstate-senator", "metadata": {}, "source": [ "Bandingkan dengan plot **SALAH** di bawah ini, karena `String` pada waktu belum dikonversi ke dalam `datetime.datetime`." ] }, { "cell_type": "code", "execution_count": 45, "id": "close-chest", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import matplotlib.dates as mdates\n", "\n", "waktu = list_time\n", "magnitudo = list(data['magnitude'])\n", "\n", "fig, ax = plt.subplots()\n", "ax.scatter(waktu, magnitudo, color=\"blue\")\n", "ax.set_title(\"Plot SALAH karena waktu masih String\")\n", "ax.set_xlabel(\"Waktu\")\n", "ax.set_ylabel(\"Magnitudo (M)\")\n", "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y-%m-%d\"))\n", "plt.xticks(rotation=65)\n", "plt.grid()\n" ] }, { "cell_type": "markdown", "id": "narrow-release", "metadata": {}, "source": [ "## *Conditional*\n", "\n", "*Conditional* merupakan susunan dari pernyataan-pernyataan jika yang digunakan untuk menentukan keputusan/*decision making*. Pada Python algoritma *conditional* biasanya dituliskan menggunakan `if` untuk level pertama, dilanjutkan `elif` untuk level berikutnya, dan untuk level terakhir menggunakankan pernyataan `else`. Mungkin akan lebih mudah apabila dijelaskan dalam bentuk kode:" ] }, { "cell_type": "code", "execution_count": 46, "id": "cordless-tulsa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Masukkan angka nilai anda: 55\n", "Nilai anda C\n" ] } ], "source": [ "nilai = float(input(\"Masukkan angka nilai anda: \"))\n", "\n", "if nilai < 50:\n", " print(\"Nilai anda\", \"D\")\n", "elif nilai <60:\n", " print(\"Nilai anda\", \"C\")\n", "elif nilai <70:\n", " print(\"Nilai anda\", \"B\")\n", "else:\n", " print(\"Nilai anda\", \"A\")" ] }, { "cell_type": "markdown", "id": "introductory-windsor", "metadata": {}, "source": [ "Pada contoh di atas apabila kita memasukkan nilai 55 maka yang pertama kali dicek adalah kondisional paling atas yaitu `if nilai <50`, karena nilai lebih besar daripada 50 maka ekspresi akan dilanjutkan ke kondisional kedua yaitu `elif nilai <60`, dimana pada fase kedua ini sudah cocok karena nilai 55 berada di bawah 60 sehingga akan keluar `Nilai anda C`. Contoh dibawah ini adalah untuk kasus nilai 45: " ] }, { "cell_type": "code", "execution_count": 47, "id": "removed-democrat", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Masukkan angka nilai anda: 45\n", "Nilai anda D\n" ] } ], "source": [ "nilai = float(input(\"Masukkan angka nilai anda: \"))\n", "\n", "if nilai < 50:\n", " print(\"Nilai anda\", \"D\")\n", "elif nilai <60:\n", " print(\"Nilai anda\", \"C\")\n", "elif nilai <70:\n", " print(\"Nilai anda\", \"B\")\n", "else:\n", " print(\"Nilai anda\", \"A\")" ] }, { "cell_type": "markdown", "id": "internal-mercy", "metadata": {}, "source": [ "Pada nilai 45 proses sudah langsung terhenti di level 1 (`if nilai < 50`) sehingga proses akan selesai dan keluar hasil cetakan berupa `Nilai anda D`. Kondisional ini dapat berlevel dan dapat pula menggunakan ekspresi `and` untuk \"dan\" dan `or` untuk `atau`. Seperti contoh di bawah ini:" ] }, { "cell_type": "code", "execution_count": 48, "id": "special-expression", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Masukkan angka nilai anda: 60\n", "Nilai anda berada di antara 50 dan 70\n" ] } ], "source": [ "nilai = float(input(\"Masukkan angka nilai anda: \"))\n", "\n", "if nilai>50 and nilai <70:\n", " print(\"Nilai anda berada di antara 50 dan 70\")\n", "elif nilai<50 or nilai>70:\n", " print(\"Nilai anda bisa jadi lebih rendah dari 50\\\n", " atau lebih tinggi dari 70\")" ] }, { "cell_type": "markdown", "id": "laughing-bunny", "metadata": {}, "source": [ "Pada contoh di atas apabila kita memasukkan nilai 60, Python akan mencetak `Nilai anda berada di antara 50 dan 70` karena angka 60 lebih besar dari 50 (`nilai>50`) dan (`and`) lebih rendah dari 70 (`nilai<70`). Berbeda apabila kita memasukkan angka 45, apa yang akan terjadi?\n", "\n", "### Memfilter data Katalog Menggunakan *Conditional*\n", "\n", "*Conditional* akan kita gunakan untuk memfilter katalog berdasarkan beberapa syarat, seperti syarat waktu kejadian, syarat kedalaman, syarat magnitudo, ataupun syarat lokasi horizontal. Sebelum melakukan filter data katalog, kita akan mengumpulkan terlebih dahulu kolom-kolom data katalog kita." ] }, { "cell_type": "code", "execution_count": 49, "id": "advisory-artwork", "metadata": {}, "outputs": [], "source": [ "kolom_waktu = list_time_dalam_datetime\n", "kolom_latitude = list(data['latitude'])\n", "kolom_longitude = list(data['longitude'])\n", "kolom_kedalaman = list(data['depth'])\n", "kolom_magnitudo = list(data['magnitude'])" ] }, { "cell_type": "markdown", "id": "musical-heating", "metadata": {}, "source": [ "Kolom-kolom yang sudah kitakumpulkan akan kita satukan dalam bentuk data baru yaitu `dictionary`. `dictionary` merupakan kumpulan data dengan masing-masing pasangan `key` dan `value`, jika diibaratkan dengan sebuah tabel maka `key` adalah judul kolom dan `value` adalah isi dari kolom tersebut. `dictionary` ini akan kita gunakan untuk menggabungkan kembali kolom-kolom yang sudah terpisah. Pembuatan `dictionary` dalam Python ada beberap cara, pada cara ini kita akan menggunakan fungsi `dict`." ] }, { "cell_type": "code", "execution_count": null, "id": "falling-perfume", "metadata": { "scrolled": true }, "outputs": [], "source": [ "katalog_dict = dict(waktu=kolom_waktu,\n", " latitude=kolom_latitude,\n", " longitude=kolom_longitude,\n", " kedalaman=kolom_kedalaman,\n", " magnitudo=kolom_magnitudo)\n", "\n", "katalog_dict" ] }, { "cell_type": "markdown", "id": "marine-affairs", "metadata": {}, "source": [ "Pada fungsi `dict` di atas kita memberikan masing-masing judul kolom yang kemudian diikuti nilai-nilai untuk kolom tersebut. Salah satu contohnya yaitu untuk judul `waktu` diikuti dengan `kolom_waktu`. Kolom-kolom yang sebelumnya terpisah dan dalam bentuk struktur data `List` kini sudah tergabung dalam satu kesatuan berbentuk `dictionary`. Untuk mengakses kolom pada `dictionary` kita dapat menggunakan cara yang sama ketika mengakses kolom pada `DataFrame` hasil pembacaan `pandas`. Hanya saja pada `dictionary` ini hasil pembacaan kolom akan langsung berbentuk `List`, tanpa dikonversi dengan fungsi `list`." ] }, { "cell_type": "code", "execution_count": 51, "id": "brazilian-february", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[datetime.datetime(2021, 1, 27, 18, 43, 24, 965000),\n", " datetime.datetime(2021, 1, 25, 16, 4, 16, 363000),\n", " datetime.datetime(2021, 1, 24, 20, 52, 8, 70000),\n", " datetime.datetime(2021, 1, 24, 16, 52, 55, 221000),\n", " datetime.datetime(2021, 1, 24, 2, 38, 50, 171000)]" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "katalog_dict['waktu'][:5]" ] }, { "cell_type": "code", "execution_count": 52, "id": "invisible-english", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['waktu', 'latitude', 'longitude', 'kedalaman', 'magnitudo'])" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "katalog_dict.keys()" ] }, { "cell_type": "markdown", "id": "favorite-order", "metadata": {}, "source": [ "Pada contoh di bawah ini kita akan memisahkan lagi `dictionary` menjadi kolom-kolom kemudian memanfaatkan `zip` untuk melakukan *looping* for secara paralel untuk semua kolom data katalog kita." ] }, { "cell_type": "code", "execution_count": 53, "id": "terminal-ground", "metadata": {}, "outputs": [], "source": [ "tanggal_awal = datetime.datetime(2021,1,14) # 12 Januari 2021\n", "tanggal_akhir = datetime.datetime(2021,1,15) # 14 Januari 2021\n", "\n", "#katalog hasil_filter\n", "waktu_hasil_filter = []\n", "longitude_hasil_filter = []\n", "latitude_hasil_filter = []\n", "kedalaman_hasil_filter = []\n", "magnitudo_hasil_filter = []\n", "\n", "\n", "# memisah masing-masing kolom lagi\n", "waktu = katalog_dict['waktu']\n", "latitude = katalog_dict['latitude']\n", "longitude = katalog_dict['longitude']\n", "kedalaman = katalog_dict['kedalaman']\n", "magnitudo = katalog_dict['magnitudo']\n", "\n", "# mengumpulkan kolom menjadi satu `zip`\n", "katalog = zip(waktu, latitude, longitude, kedalaman, magnitudo)\n", "\n", "for t,lat,lon,ked,mag in katalog:\n", " # jika waktu lebih dari tanggal awal dan kurang dari tanggal akhir\n", " if t>tanggal_awal and t" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import matplotlib.dates as mdates\n", "\n", "# mendefinisikan list waktu dan magnitudo\n", "waktu_hasil_filter = waktu_hasil_filter\n", "magnitudo_hasil_filter = magnitudo_hasil_filter\n", "\n", "# membuat plot\n", "fig, ax = plt.subplots()\n", "ax.scatter(waktu, magnitudo, color=\"blue\", label=\"asli\")\n", "ax.scatter(waktu_hasil_filter, magnitudo_hasil_filter, color=\"orange\", label=\"hasil_filter\")\n", "ax.set_title(\"Grafik Magnitudo terhadap Waktu Kejadian \\nGempa Mamuju\")\n", "ax.set_xlabel(\"Waktu\")\n", "ax.set_ylabel(\"Magnitudo (M)\")\n", "ax.xaxis.set_major_formatter(mdates.DateFormatter(\"%Y-%m-%d\"))\n", "ax.axvline(x=tanggal_awal, linestyle=\"--\", color=\"grey\")\n", "ax.axvline(x=tanggal_akhir, linestyle=\"--\", color=\"grey\")\n", "plt.xticks(rotation=65)\n", "plt.legend()\n", "plt.grid()\n" ] }, { "cell_type": "markdown", "id": "lesser-butter", "metadata": {}, "source": [ "## Fungsi dan Modul\n", "\n", "Fungsi merupakan kumpulan kode dengan tujuan tertentu yang dapat dipanggil saat akan digunakan. Kode dalam sebuah fungsi akan disesuaikan dengan tujuan dibuatnya fungsi tersebut. Fungsi-fungsi dipecah menjadi bagian-bagian kecil untuk mempermudah penulisan kode, pemanggilan, *debugging*, dan *maintenance*, kebiasaan ini sering disebut sebagai *refactoring*. berikut ini adalah contoh fungsi dengan tujuan spesifik yaitu untuk menghitung volume kubus." ] }, { "cell_type": "code", "execution_count": 56, "id": "super-lesson", "metadata": {}, "outputs": [], "source": [ "def volume_kubus(panjang_sisi):\n", " \"\"\"Fungsi untuk menghitung volume kubus\n", " \n", " Parameters:\n", " panjang_sisi : float\n", " Panjang sisi kubus\n", " \n", " Returns:\n", " volume : float\n", " Volume kubus\n", " \"\"\"\n", " volume = float(panjang_sisi)**3\n", " return volume" ] }, { "cell_type": "markdown", "id": "stuffed-dialogue", "metadata": {}, "source": [ "Penulisan fungsi diawali dengan sintaks `def` yang diikuti dengan nama fungsi, setelah nama fungsi kemudian ada `argument` didalam tanda kurung yang harus kita isikan nilainya ketika memanggil fungsi tersebut. Perhitungan kemudian diletakkan di baris bawah pendefinisian fungsi dengan diberikan satu kali indentasi. Di akhir setiap fungsi biasanya akan ada sintaks `return` yang diikuti variabel apa yang akan dikembalikan atau dihasilkan dari menjalankan fungsi tersebut. Tidak semua fungsi harus mengembalikan sebuah hasil. \n", "\n", "Pada fungsi volume kubus di atas nama fungsinya adalah `volume_kubus` dengan parameter atau argumen yang harus diisi adalah `panjang_sisi`. `volume` kemudian akan dihitung dengan menggunakan rumus `float(panjang_sisi)**3` sebelum akhrinya dikembalikan atau dikeluarkan hasilnya oleh `return`. Fungsi di atas menjadi terlihat begitu panjang karena terdapat `docstring` yang diapit oleh `'''` yang merupakan manual penggunaan fungsi tersebut. `docstring` atau string dokumentasi ini berguna sebagai petunjuk bagi pengguna serta penulis kode, apabila akan melakukan *maintenance* atau update. `docstring` yang ditunjukkan disini adalah `docstring` dengan format penulisan mengikuti gaya `numpy`. Dengan adanya `docstring` maka kita dapat memanggil fungsi `help` yang akan menunjukkan `docstring` tersebut." ] }, { "cell_type": "code", "execution_count": 57, "id": "golden-privilege", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function volume_kubus in module __main__:\n", "\n", "volume_kubus(panjang_sisi)\n", " Fungsi untuk menghitung volume kubus\n", " \n", " Parameters:\n", " panjang_sisi : float\n", " Panjang sisi kubus\n", " \n", " Returns:\n", " volume : float\n", " Volume kubus\n", "\n" ] } ], "source": [ "help(volume_kubus)" ] }, { "cell_type": "markdown", "id": "cardiovascular-slovenia", "metadata": {}, "source": [ "Contoh pemanggilan fungsi `volume_kubus`:" ] }, { "cell_type": "code", "execution_count": 58, "id": "abandoned-tennis", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "27.0" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "volume_kubus(3)" ] }, { "cell_type": "markdown", "id": "civilian-korea", "metadata": {}, "source": [ "Paramater juga dapat diberikan nilai *default*, dalam contoh ini `panjang_sisi` diberikan nilai *default* yaitu 30:" ] }, { "cell_type": "code", "execution_count": 59, "id": "continental-karma", "metadata": {}, "outputs": [], "source": [ "def volume_kubus(panjang_sisi=3.0):\n", " \"\"\"Fungsi untuk menghitung volume kubus\n", " \n", " Parameters:\n", " panjang_sisi : float, default=3.0\n", " Panjang sisi kubus\n", " \n", " Returns:\n", " volume : float\n", " Volume kubus\n", " \"\"\"\n", " volume = float(panjang_sisi)**3\n", " return volume" ] }, { "cell_type": "code", "execution_count": 60, "id": "clear-tomorrow", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function volume_kubus in module __main__:\n", "\n", "volume_kubus(panjang_sisi=3.0)\n", " Fungsi untuk menghitung volume kubus\n", " \n", " Parameters:\n", " panjang_sisi : float, default=3.0\n", " Panjang sisi kubus\n", " \n", " Returns:\n", " volume : float\n", " Volume kubus\n", "\n" ] } ], "source": [ "help(volume_kubus)" ] }, { "cell_type": "markdown", "id": "amended-edgar", "metadata": {}, "source": [ "Saat sebuah parameter fungsi memiliki nilai *default* maka apabila kita tidak mengisikan parameter dan argumen tersebut kita akan tetap mendapatkan hasil, dengan `panjang_sisi` otomatis adalah 30." ] }, { "cell_type": "code", "execution_count": 61, "id": "nasty-sherman", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "27.0" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "volume_kubus()" ] }, { "cell_type": "markdown", "id": "prostate-correlation", "metadata": {}, "source": [ "Fungsi juga dapat dituliskan dalam bentuk `lambda` yang singkat tetapi nama fungsinya tidak tersimpan dan langsung menjadi nama variabel. Contoh fungsi `lambda`:" ] }, { "cell_type": "code", "execution_count": 62, "id": "external-refund", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "25\n" ] } ], "source": [ "pangkat_2 = lambda x: x**2\n", "print(pangkat_2(5))" ] }, { "cell_type": "markdown", "id": "twelve-builder", "metadata": {}, "source": [ "Fungsi juga dapat berbentuk fungsi yang rekursif seperti contoh fungsi faktorial yang diambil dari [programiz](https://www.programiz.com/python-programming/recursion):" ] }, { "cell_type": "code", "execution_count": 63, "id": "ignored-volume", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The factorial of 3 is 6\n" ] } ], "source": [ "def factorial(x):\n", " \"\"\"This is a recursive function\n", " to find the factorial of an integer\"\"\"\n", "\n", " if x == 1:\n", " return 1\n", " else:\n", " return (x * factorial(x-1))\n", "\n", "\n", "num = 3\n", "print(\"The factorial of\", num, \"is\", factorial(num))" ] }, { "cell_type": "markdown", "id": "occasional-arrival", "metadata": {}, "source": [ "### Memasukkan Kode Filter ke Dalam Fungsi\n", "\n", "Setelah memahami tentang fungsi, kita kemudian akan memasukkan kode-kode filter katalog kita tadi ke dalam sebuah fungsi sehingga kita tidak perlu menuliskan berulang-ulang dan hanya perlu memanggilnya. Untuk memasukkan ke dalam fungsi kita dapat menggunakan kode berikut ini dengan parameter yang harus dimasukkan masih dalam bentuk `list` atau kolom." ] }, { "cell_type": "code", "execution_count": 64, "id": "olive-castle", "metadata": {}, "outputs": [], "source": [ "def filter_katalog_waktu(waktu_awal, waktu_akhir, waktu, longitude, \\\n", " latitude, kedalaman, magnitudo):\n", " \"\"\"Fungsi untuk memfilter katalog berdasarkan waktu\n", " \n", " Parameters:\n", " waktu_awal : datetime.datetime\n", " Waktu awal untuk proses filter\n", " waktu_akhir : datetime.datetime\n", " Waktu akhir untuk proses filter\n", " waktu : list\n", " List yang berisi waktu kejadian\n", " longitude : list\n", " List yang berisi longitude\n", " latitude : list\n", " List yang berisi latitude\n", " kedalaman : list\n", " List yang berisi kedalaman\n", " magnitudo : list\n", " List yang berisi magnitudo\n", " \n", " \n", " Returns:\n", " waktu_hasil_filter : list\n", " List yang berisi waktu kejadian hasil filter\n", " longitude_hasil_filter : list\n", " List yang berisi longitude hasil filter\n", " latitude_hasil_filter : list\n", " List yang berisi latitude hasil filter\n", " kedalaman_hasil_filter : list\n", " List yang berisi kedalaman hasil filter\n", " magnitudo_hasil_filter : list\n", " List yang berisi magnitudo hasil filter\n", " \"\"\" \n", " \n", " #katalog hasil_filter\n", " waktu_hasil_filter = []\n", " longitude_hasil_filter = []\n", " latitude_hasil_filter = []\n", " kedalaman_hasil_filter = []\n", " magnitudo_hasil_filter = []\n", "\n", " # mengumpulkan kolom menjadi satu `zip`\n", " katalog = zip(waktu, latitude, longitude, kedalaman, magnitudo)\n", "\n", " for t,lat,lon,ked,mag in katalog:\n", " # jika waktu lebih dari tanggal awal dan kurang dari tanggal akhir\n", " if t>waktu_awal and t" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(hasil_filter_t, hasil_filter_ked)" ] }, { "cell_type": "markdown", "id": "answering-wilson", "metadata": {}, "source": [ "Kode dapat kita sederhanakan dengan menggunakan pengetahuan `dictionary` seperti pada contoh awal. Peserta dapat berlatih dengan studi kasus ini, yaitu mengubah parameter fungsi dari masing-masing kolom menjadi satu `dictionary` saja." ] }, { "cell_type": "markdown", "id": "personalized-characteristic", "metadata": {}, "source": [ "### Menyimpan Fungsi ke Dalam Sebuah Modul\n", "\n", "Fungsi `filter_katalog_waktu` di atas salinlah ke dalam folder `utilities` yang berada satu level dengan notebook ini ke dalam file dengan nama `filter_katalog.py`. Pada folder `utilities` tersebut, buatlah satu file lagi dengan nama `__init__.py` (file kosong) sebagai penanda untuk Python bahwa folder tersebut merupakan sebuah modul. Susunannya kira-kira adalah seperti ini:\n", "\n", "```\n", "|folder_utama/\n", "|-|utilites/\n", "|-|-|__init__.py\n", "|-|-|filter_katalog.py\n", "|-|2_Materi_Dasar_Python.ipynb\n", "```" ] }, { "cell_type": "markdown", "id": "regulated-cartoon", "metadata": {}, "source": [ "Setelah itu kita dapat memanggil fungsi kita layaknya modul-modul yang sudah kita gunakan sebelumnya:" ] }, { "cell_type": "code", "execution_count": 69, "id": "juvenile-terrace", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Help on function filter_katalog_waktu in module utilities.filter_katalog:\n", "\n", "filter_katalog_waktu(waktu_awal, waktu_akhir, waktu, longitude, latitude, kedalaman, magnitudo)\n", " Fungsi untuk memfilter katalog berdasarkan waktu\n", " \n", " Parameters:\n", " waktu_awal : datetime.datetime\n", " Waktu awal untuk proses filter\n", " waktu_akhir : datetime.datetime\n", " Waktu akhir untuk proses filter\n", " waktu : list\n", " List yang berisi waktu kejadian\n", " longitude : list\n", " List yang berisi longitude\n", " latitude : list\n", " List yang berisi latitude\n", " kedalaman : list\n", " List yang berisi kedalaman\n", " magnitudo : list\n", " List yang berisi magnitudo\n", " \n", " \n", " Returns:\n", " waktu_hasil_filter : list\n", " List yang berisi waktu kejadian hasil filter\n", " longitude_hasil_filter : list\n", " List yang berisi longitude hasil filter\n", " latitude_hasil_filter : list\n", " List yang berisi latitude hasil filter\n", " kedalaman_hasil_filter : list\n", " List yang berisi kedalaman hasil filter\n", " magnitudo_hasil_filter : list\n", " List yang berisi magnitudo hasil filter\n", "\n" ] } ], "source": [ "from utilities.filter_katalog import filter_katalog_waktu\n", "\n", "help(filter_katalog_waktu)" ] }, { "cell_type": "markdown", "id": "robust-greenhouse", "metadata": {}, "source": [ "## Visualisasi Data\n", "\n", "Visualisasi data di Python biasa dilakukan dengan menggunakan modul `matplotlib`, modul ini yang paling umum dan sebenarnya masih banya modul visualisasi data yang lain. Setelah ditahap sebelumnya kita sudah mengolah dan mencoba mengaplikasikan beberapa algoritma umum Python, pada tahap ini kita akan memvisualisasikan data-data yang telah kita baca. Proses plotting para `matplotlib` dilakukan menggunakan fungsi `pyplot`, fungsi ini akan kita impor kemudian kita beri alias sebagai `plt`." ] }, { "cell_type": "code", "execution_count": 70, "id": "cardiovascular-surface", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "id": "wound-anxiety", "metadata": {}, "source": [ "### Plot sederhana\n", "Fungsi paling sederhana dan mudah adalah dengan langsung melakukan plot menggunakan `plt` ini:" ] }, { "cell_type": "code", "execution_count": 71, "id": "amended-hawaiian", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXwAAAD4CAYAAADvsV2wAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAV7klEQVR4nO3df5CdV33f8ffXknBWquO1sYBoZUUuJoKM/EN4h9C6hB8yWFUVW7EnUyh0cFyi0pmW1O3IY1W0zORHcUdpk8x4Jh6VGDOD6jIhtpwJNvqBS0lI5XZlyZbBkgk02F4B3tRe6KCl3pW//WPvOqvVvXfv3efeuz/O+zWz4/s89+xzzj2Izz733HPOjcxEkrT0XTDfDZAk9YaBL0mFMPAlqRAGviQVwsCXpEIsn+8GNHPZZZfl+vXr57sZkrRoHD169K8zc3W95xZ04K9fv56hoaH5boYkLRoR8d1GzzmkI0mFMPAlqRAGviQVwsCXpEIY+JJUiAU9S0eSSrL/2DB7Dpzi9OgYa/r72HnjBrZvGujY9Q18SVoA9h8bZteDJxgbPwvA8OgYux48AdCx0HdIR5IWgD0HTr0W9lPGxs+y58CpjtVRKfAjYk9EnIyIpyLioYjob1J2WUQci4g/rVKnJC1Fp0fH2jo/F1Xv8A8BGzPzauBZYFeTsr8OPFOxPklaktb097V1fi4qBX5mHszMidrhEWBtvXIRsRb4B8BnqtQnSUvVzhs30Ldi2Tnn+lYsY+eNGzpWRyc/tL0d+EKD534PuBO4aLaLRMQOYAfAunXrOtU2SVrQpj6YnddZOhFxGHhTnad2Z+bDtTK7gQlgX53f3wa8mJlHI+I9s9WXmXuBvQCDg4N+4a6kYmzfNNDRgJ9p1sDPzBuaPR8RtwHbgM1Z/xvRrwduioitwE8BPx0Rn8/Mj8yhvZKkOao6S2cLk0M1N2XmmXplMnNXZq7NzPXAB4HHDHtJ6r2qs3TuYXJc/lBEHI+IewEiYk1EPFK5dZKkjqn0oW1mXtng/Glga53zXwW+WqVOSdLcuNJWkgph4EtSIQx8SSqEgS9JhTDwJakQBr4kFcLAl6RCGPiSVAgDX5IKYeBLUiEMfEkqhIEvSYUw8CWpEAa+JBXCwJekQhj4klQIA1+SCmHgS1IhDHxJKoSBL0mFMPAlqRAGviQVYnmVX46IPcAvAa8A3wZ+NTNH65T7K+D/AmeBicwcrFKvJKl9Ve/wDwEbM/Nq4FlgV5Oy783Maw17SZoflQI/Mw9m5kTt8AiwtnqTJEnd0Mkx/NuBRxs8l8DBiDgaETuaXSQidkTEUEQMjYyMdLB5klS2WcfwI+Iw8KY6T+3OzIdrZXYDE8C+Bpf5e5k5HBFvAA5FxMnM/Fq9gpm5F9gLMDg4mC28BklSC2YN/My8odnzEXEbsA3YnJl1Azozh2v/fTEiHgLeAdQNfElSd1Qa0omILcCdwE2ZeaZBmVURcdHUY+ADwNNV6pUkta/qGP49wEVMDtMcj4h7ASJiTUQ8UivzRuDPI+JJ4H8CX8rML1esV5LUpkrz8DPzygbnTwNba4+/A1xTpR5JUnWutJWkQhj4klQIA1+SCmHgS1IhDHxJKoSBL0mFMPAlqRAGviQVwsCXpEIY+JJUCANfkgph4EtSIQx8SSqEgS9JhTDwJakQBr4kFcLAl6RCGPiSVAgDX5IKYeBLUiEMfEkqhIEvSYWoFPgRsSciTkbEUxHxUET0NyjXHxFfrJV9JiL+TpV6JUntq3qHfwjYmJlXA88CuxqU+33gy5n5VuAa4JmK9UqS2lQp8DPzYGZO1A6PAGtnlomIi4FfBP6w9juvZOZolXolSe3r5Bj+7cCjdc5fAYwAn42IYxHxmYhY1egiEbEjIoYiYmhkZKSDzZOkss0a+BFxOCKervNz87Qyu4EJYF+dSywH3g78QWZuAn4M3NWovszcm5mDmTm4evXqtl+QJKm+5bMVyMwbmj0fEbcB24DNmZl1irwAvJCZj9eOv0iTwJckdUfVWTpbgDuBmzLzTL0ymfl94PmI2FA7tRn4ZpV6JUntqzqGfw9wEXAoIo5HxL0AEbEmIh6ZVu5fAPsi4ingWuDfV6xXktSmWYd0msnMKxucPw1snXZ8HBisUpckqRpX2kpSIQx8SSqEgS9JhTDwJakQBr4kFcLAl6RCGPiSVAgDX5IKYeBLUiEMfEkqhIEvSYUw8CWpEAa+JBXCwJekQhj4klQIA1+SCmHgS1IhDHxJKoSBL0mFMPAlqRAGviQVwsCXpEJUCvyI2BMRJyPiqYh4KCL665TZEBHHp/38KCL+ZZV6JUntq3qHfwjYmJlXA88Cu2YWyMxTmXltZl4LXAecAR6qWK8kqU2VAj8zD2bmRO3wCLB2ll/ZDHw7M79bpV5JUvs6OYZ/O/DoLGU+CDzQrEBE7IiIoYgYGhkZ6VjjJKl0swZ+RByOiKfr/Nw8rcxuYALY1+Q6rwNuAv6oWX2ZuTczBzNzcPXq1a2/EklSU8tnK5CZNzR7PiJuA7YBmzMzmxT9+8ATmfmDtlooSeqIWQO/mYjYAtwJvDszz8xS/EPMMpwjSeqeqmP49wAXAYdqUy7vBYiINRHxyFShiFgFvB94sGJ9kqQ5qnSHn5lXNjh/Gtg67fjHwOur1CVJqsaVtpJUCANfkgph4EtSIQx8SSqEgS9JhTDwJakQBr4kFcLAl6RCGPiSVAgDX5IKYeBLUiEMfEkqhIEvSYUw8CWpEAa+JBXCwJekQhj4klQIA1+SCmHgS1IhDHxJKoSBL0mFMPAlqRCVAj8i9kTEyYh4KiIeioj+BuXuiIhvRMTTEfFARPxUlXolSe2reod/CNiYmVcDzwK7ZhaIiAHgE8BgZm4ElgEfrFivJKlNlQI/Mw9m5kTt8AiwtkHR5UBfRCwHVgKnq9QrSWpfJ8fwbwcenXkyM4eB3wGeA74H/DAzDza6SETsiIihiBgaGRnpYPMkqWyzBn5EHK6Nvc/8uXlamd3ABLCvzu9fAtwMXAGsAVZFxEca1ZeZezNzMDMHV69ePZfXJEmqY/lsBTLzhmbPR8RtwDZgc2ZmnSI3AP87M0dq5R8E/i7w+bZbK0mas6qzdLYAdwI3ZeaZBsWeA94ZESsjIoDNwDNV6pUkta/qGP49wEXAoYg4HhH3AkTEmoh4BCAzHwe+CDwBnKjVubdivZKkNs06pNNMZl7Z4PxpYOu0408Bn6pSlySpGlfaSlIhDHxJKoSBL0mFMPAlqRAGviQVwsCXpEIY+JJUCANfkgph4EtSISqttJUktWf/sWH2HDjF6dEx1vT3sfPGDWzfNNCTug18SeqR/ceG2fXgCcbGzwIwPDrGrgdPAPQk9B3SkaQe2XPg1GthP2Vs/Cx7DpzqSf3e4auS+Xx7Ki02p0fH2jrfad7ha86m3p4Oj46R/M3b0/3Hhue7adKCtKa/r63znWbga87m++2ptNjsvHEDfSuWnXOub8Uydt64oSf1O6SjOZvvt6fSYjM13OksHS06a/r7GK4T7r16eyotRts3Dczb51wO6WjO5vvtqaT2eIevOZvvt6eS2mPgCzh/euV737qa/3ZyhNOjY/SvXEEm/HBsvCuh7tROqTcMfNVd/ff5I8+99vzLZ8Zfezx9ZSBQedXgfK88lEriGL7qTq9sZmrqZSemZTq1U+qdSnf4EbEH+CXgFeDbwK9m5midcr8O/BoQwH/OzN+rUq86ay7TKJv9Tr3nGg3bNLrO8OgYV9z1JYeQpA6qeod/CNiYmVcDzwK7ZhaIiI1Mhv07gGuAbRFxZcV61UFzmUZ5cd+KllcNNluR26zubqzedXWwSlYp8DPzYGZO1A6PAGvrFHsb8HhmnqmV/e/ALVXqVWfVm145m4jWp2U2G7Zppe5ODvE4hKSSdXIM/3bg0TrnnwbeFRGvj4iVwFbg8kYXiYgdETEUEUMjIyMdbJ4a2b5pgFuvG2BZBADLIrj+zZcy0OTue/TMONs3DfDpW65ioL+PAAb6+/j0LVedNzzSbEXuzGs00qnVu64OVslmHcOPiMPAm+o8tTszH66V2Q1MAPtmFsrMZyLiPwAHgR8Dx4GGnxBm5l5gL8Dg4GDO/hJU1f5jw/zx0WHO5mR3n83kied+yKdvuYo9B041XU3byqrB2VbkTr/G9Xc/1tXVu64OVslmvcPPzBsyc2Odn6mwvw3YBnw4M+sGdGb+YWZel5m/CLzM5Hi/Foh2h1zaXU3bzjW6vXrX1cEqWdVZOluAO4F3Z+aZJuXekJkvRsQ6Jsfv31mlXnXWbEMuMLfVtNNnw/SvXMGFyy+ou3hr5qyZt6+7mCPfeZmzmQRwQcAdXzj+2h+gKjNqmr0eZ+9oqYsGN+Wt/XLEXwIXAv+ndupIZn48ItYAn8nMrbVyfwa8HhgH/lVmfqWV6w8ODubQ0NCc26fWNBpGGejv4+t3vW9O15y5oAom76RnjvHXK9dMvWt0QqvtlRa6iDiamYP1nqs6S+fKzLw8M6+t/Xy8dv70VNjXjt+VmT+fmde0GvbqnW4Mc7Q6G2aui746zdk7KoErbdXybJt2NFtQdf3dj702773Ti77mytk7KoF76Qjo/B7djWbDwLn75Vzct4LRsfG65Zpdu9OcvaMSeIevrphtQdXUcEk0m3xfR7dm1Dh7RyVYcnf4zrTorU/uP8EDjz/P2UyWRfChX7ic39o+ORw09N2XXnuuntmGS4LJdwARkwu9uvm/p3v7qwRLKvDdare3Prn/xDnbKJ/NfO148GcvPWcxVz0X961g1YXLOz5DaK7m86vnpF5YUkM6zrTorQcef77h+VZm37SzH4+k6pZU4DvTorca3b2fzWz4ge10L58Z544vHAeSC2pj+csiuPU677SlblhSgd/qdr3qjAva/MC1ngTGxl/l1drfjrOZ/PHRYbcrlrpgSQW+wwO9deHy7vzzcRhO6o4l9aGtMy166yfjr7ZcdtXrlnHmlbO0upGHw3BS5y2pwAdnWvRSs8VV012ycgU/GX+15bCfurakzlpSQzrqrVa+rapvxTIyaWu/HIfhpO4w8Au2/9gw19/9GFfc9aVz9rdpVb09eK5/86XnfHPWrdcN8MM2tk4Y6O/j1usG2HPg1JzbJam+Stsjd5vbI3dPN7YDbnTNC5df0NJ+OQO1z1zcpliau65tj6zFqxuL1BpdM4KWhn523rjBxXNSFxn4herGIrVGvzt6Zvy8oZ+PvHNd3e2YXTwndc+Sm6Wj1nRjO+Bm12x19pTbFEvd4x1+obqxSK3XX3guqT3e4ReqG4vUOnFNF89J3eMsHVXSaD98SfOj2Swd7/A1Z832wzf0pYWn8hh+RPxmRDwVEccj4mBErGlQ7qMR8a3az0er1qv512w/fEkLTyfu8Pdk5r8FiIhPAP8O+Pj0AhFxKfApYJDJHXGPRsSfZObLHahfM/Tqax6b7YcvaeGpfIefmT+adrgK6u6RdSNwKDNfqoX8IWBL1bp1vqnVrsOjYyR/8zWP3dieYFmDbyBvdF7S/OrItMyI+O2IeB74MJN3+DMNANPf579QO6cO6+VK1Q/9wuVtnZc0v1oa0omIw8Cb6jy1OzMfzszdwO6I2AX8cyaHb+YkInYAOwDWrVs318sUq5crVac+mJ3LLJ1mw069GpKSStNS4GfmDS1ebx/wCOcH/jDwnmnHa4GvNqhrL7AXJqdltlivavpXruDlM+dvVNa/ckVX6vut7Ve1PSNn5iZrU8NOUxo9Z+hL1XRils5bph3eDJysU+wA8IGIuCQiLgE+UDunDmv0eelC+hy12bCTm6dJ3dOJWTp3R8QG4FXgu9Rm6ETEIPDxzPxYZr4UEb8J/K/a7/xGZr7Ugbo1Q6O959vZk77b5jLs5OZpUnWVAz8zb21wfgj42LTj+4D7qtan5hbD5mPN2njmlYmeDklJJXHztCVmMWw+1qyNi2FISlqsDPwlpt7XDi60b4tq1sZGQ0+jY+N+3aFUkZunaUG5/u7H6g73TPHrDqXm/IpDLRr1hnumc8aONHfulqkFZfp++I3u9J2xI82Nd/hacLZvGuDrd72PgQYzixbSjCNpMTHwtWAthhlH0mLikI4WLL/uUOosA18L2vZNAwa81CEO6UhSIQx8SSqEgS9JhTDwJakQBr4kFWJB76UTESNM7rHfisuAv+5icxYj++Rc9sf57JNzLYX++NnMXF3viQUd+O2IiKFGGwaVyj45l/1xPvvkXEu9PxzSkaRCGPiSVIilFPh757sBC5B9ci7743z2ybmWdH8smTF8SVJzS+kOX5LUhIEvSYVYkIEfEfdFxIsR8fS0c78SEd+IiFcjYnDa+RUR8bmIOBERz0TErgbXjIj47Yh4tlbuE714LZ3SpT7ZHBFPRMTxiPjziLiyF6+lE9rsj9dFxGdr/fFkRLynwTUvjYhDEfGt2n8v6f4r6Ywu9ceeiDgZEU9FxEMR0d/1F9JB3eiTaeX/dURkRFzWvVfQeQsy8IH7gS0zzj0N3AJ8bcb5XwEuzMyrgOuAfxoR6+tc8zbgcuCtmfk24L92sL29cD+d75M/AD6cmdcC/wX4ZAfb223303p//BpArT/eD/zHiKj3b/8u4CuZ+RbgK7XjxeJ+Ot8fh4CNmXk18CxQ98ZhAbufzvcJEXE58AHguU42thcWZOBn5teAl2aceyYz6317dQKrImI50Ae8AvyoTrl/BvxGZr5au96LnW11d3WpTxL46drji4HTnWtxd7XZHz8PPFYr8yIwCtRbXHMz8Lna488B2zvU3K7rRn9k5sHMnKgdHgHWdrLN3dalfyMAvwvcyeT/fxaVBRn4bfoi8GPge0z+xf2dzHypTrk3A/8wIoYi4tGIeEsvG9ljrfbJx4BHIuIF4B8Dd/euiT31JHBTRCyPiCuYfNdzeZ1yb8zM79Uefx94Y68a2GOt9sd0twOPdr1l86elPomIm4HhzHyy1w3shKXwjVfvAM4Ca4BLgD+LiMOZ+Z0Z5S4EfpKZgxFxC3Af8K7eNrVnWu2TO4Ctmfl4ROwE/hOTfwSWmvuAtwFDTO7N9BdM9k9DmZkRseju4FrUVn9ExG5gAtjXk9bNj1n7JCJWAv+GyeGcRWkpBP4/Ar6cmePAixHxdSbfis0MtxeAB2uPHwI+27sm9tysfRIRq4FrMvPx2qkvAF/ueUt7oDYsccfUcUT8BZNj0jP9ICJ+JjO/FxE/AyyqYb9WtdEfRMRtwDZgcy7hRTst9smbgSuAJyMCJoe4noiId2Tm93vV1iqWwpDOc8D7ACJiFfBO4GSdcvuB99Yev5sG/8CXiFb65GXg4oj4udrx+4FnetbCHoqIlbV+ICLeD0xk5jfrFP0T4KO1xx8FHu5RE3uq1f6IiC1MjlXflJlnetzMnmqlTzLzRGa+ITPXZ+Z6Jm8i375Ywh6AzFxwP8ADTI4/jzPZqf8E+OXa4/8H/AA4UCv7t4A/Ar4BfBPYOe06jwBrao/7gS8BJ4D/weTd7by/1nnuk1+u9ceTwFeBvz3fr7NL/bEeOMXkH7TDTG4fO3WdzwCDtcevZ3J2zrdq5S6d79c5z/3xl8DzwPHaz73z/Trnu09mXP+vgMvm+3W28+PWCpJUiKUwpCNJaoGBL0mFMPAlqRAGviQVwsCXpEIY+JJUCANfkgrx/wFbRPhmtwXr5gAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(longitude, latitude)" ] }, { "cell_type": "markdown", "id": "signal-attendance", "metadata": {}, "source": [ "Fungsi `plt.scatter` seperti di atas akan mengeplot data menjadi titik-titik/*scatter*. Fungsi untuk mengeplot garis adalah `plt.plot`:" ] }, { "cell_type": "code", "execution_count": 72, "id": "verified-turtle", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(waktu, magnitudo)" ] }, { "cell_type": "markdown", "id": "greenhouse-empty", "metadata": {}, "source": [ "Masih banyak sekali bentuk-bentuk plot yang dapat dilihat secara lebih lengkap di website [matplotlib](https://matplotlib.org/).\n", "\n", "### Menambah komponen plot\n", " Komponen-komponen grafik dapat kita tambahkan dengan beberapa fungsi di bawah ini:\n" ] }, { "cell_type": "code", "execution_count": 73, "id": "listed-transcript", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# mengeplot (ditambah label)\n", "plt.scatter(longitude, latitude, label=\"Episenter\")\n", "\n", "# menambah keterangan sumbu x dan y\n", "plt.xlabel(\"Longitude [deg]\")\n", "plt.ylabel(\"Latitude [deg]\")\n", "\n", "# menambah judul plot\n", "plt.title(\"Plot Episenter Gempa di Sekitar Mamuju\")\n", "\n", "# menambah garis grid\n", "plt.grid()\n", "\n", "# menampilkan legenda\n", "plt.legend()" ] }, { "cell_type": "markdown", "id": "arctic-mystery", "metadata": {}, "source": [ "### Menyimpan plot\n", "Untuk menambahkan menyimpan gambar kita dapat menggunakan fungsi `plt.savefig` diikuti dengan `lokasi` output dan `dpi` yang merupakan resolusi dalam *dot per inch*, contoh gambar di atas akan kita simpan di folder `output` (folder ini harus sudah dibuat terlebih dahulu)." ] }, { "cell_type": "code", "execution_count": 74, "id": "designing-dutch", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# mengeplot (ditambah label)\n", "plt.scatter(longitude, latitude, label=\"Episenter\")\n", "\n", "# menambah keterangan sumbu x dan y\n", "plt.xlabel(\"Longitude [deg]\")\n", "plt.ylabel(\"Latitude [deg]\")\n", "\n", "# menambah judul plot\n", "plt.title(\"Plot Episenter Gempa di Sekitar Mamuju\")\n", "\n", "# menambah garis grid\n", "plt.grid()\n", "\n", "# menampilkan legenda\n", "plt.legend()\n", "\n", "# menyimpan ke folder output dengan nama episenter.png\n", "plt.savefig(\"output/episenter.png\", dpi=144)" ] }, { "cell_type": "markdown", "id": "fallen-frontier", "metadata": {}, "source": [ "### Memanfaatkan `format` string untuk keterangan-keterangan plot\n", "Teman-teman kemudian dapat mengecek ke folder `output` untuk melihat gambar dalam ukuran yang asli. Kita juga dapat menggunakan `format` string untuk memberikan judul yang mengandung variabel tertentu. Pada contoh di bawah ini kita memberikan keterangan waktu pada judul grafik dengan menggunakan `format` dan `{}` sebagai *placeholder*. Variabel yang dimasukkan adalah waktu awal `waktu[-1]` dan waktu akhir `waktu[0]` yang dikonversi ke dalam tanggal saja dengan metode `date()`." ] }, { "cell_type": "code", "execution_count": 75, "id": "closing-register", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(longitude, latitude) # mengplot titik episenter\n", "plt.xlabel(\"Longitude [deg]\") #menambah label pada sumbu x\n", "\n", "plt.ylabel(\"Latitude [deg]\") # menambah label pada sumbu y\n", "plt.title(\"Persebaran Gempa di Mamuju pada \\n\" + \\\n", " \"{} sampai {}\".format(waktu[-1].date(), waktu[0].date())) #keterangan waktu pada judul\n", "plt.grid()" ] }, { "cell_type": "markdown", "id": "caroline-prime", "metadata": {}, "source": [ "### Mengubah warna dan ukuran plot\n", "Kita dapat melengkapi warna dan ukuran titik episenter sesuai dengan magnitudo dan kedalaman dengan menambahkan argumen `c` yang berarti `color` ke dalam fungsi `plt.scatter`, argumen `c` ini akan kita isi dengan kedalaman karena kita akan mewarnai berdasarkan kedalaman. Argumen `s` mewakili ukuran titik, akan kita isi dengan magnitudo yang mewakili ukuran titik. Pada akhir kode kita dapat menambahkan `plt.colorbar` untuk menampilkan skala warna." ] }, { "cell_type": "code", "execution_count": 76, "id": "current-typing", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(longitude, latitude, c=kedalaman, s=magnitudo) # mengplot titik episenter\n", "plt.xlabel(\"Longitude [deg]\") #menambah label pada sumbu x\n", "plt.ylabel(\"Latitude [deg]\") # menambah label pada sumbu y\n", "plt.title(\"Persebaran Gempa di Mamuju pada \\n\" + \\\n", " \"{} sampai {}\".format(waktu[-1].date(), waktu[0].date())) #keterangan waktu pada judul\n", "plt.grid()\n", "plt.colorbar(label=\"Kedalaman [km]\")" ] }, { "cell_type": "markdown", "id": "changing-crack", "metadata": {}, "source": [ "### Mengubah Ukuran Titik dan Menambahkan Legenda Magnitudo\n", "\n", "Ternyata ukuran magnitudo sangat kecil kita dapat memodifikasi nilai magnitudo dengan dikalikan dengan nilai tertentu menggunakan loop. Looping yang akan kita gunakan merupakan looping yang sama hanya saja ditulis dengan lebih singkat. Angka magnitudo akan dikalikan pangkatkan ke 2,5 untuk memperbesar ukuran plot, kemudian pada argumen `s` di `plt.scatter` kita harus mengganti menjadi `magnitudo_modifikasi`. Modifikasi lain juga harus kita berikan, `plt.scatter` harus kita beri nama seperti `eq` kemudian kita harus menambahkan `*eq.legend_elements(\"sizes\", num=4, func=lambda x: x**(1/2.5))` di bagian `plt.legend`. `num` dapat kita ganti dengan berapa jumlah legenda ukuran titik yang akan ditampilkan, sedangkan `func` berisi fungsi untuk mengembalikan angka magnitudo ke angka sebenarnya (kita bagi 6 (`lambda x: x**(1/2.5)`))." ] }, { "cell_type": "code", "execution_count": 77, "id": "headed-computer", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "[26.333240780428074,\n", " 13.118829216054303,\n", " 10.90017247569964,\n", " 8.923353629661888,\n", " 16.920151004054308,\n", " 32.0,\n", " 8.022682219806539,\n", " 28.148742067808286,\n", " 22.91765149399039,\n", " 22.91765149399039,\n", " 26.333240780428074,\n", " 10.90017247569964,\n", " 21.315586785261154,\n", " 47.889978805591475,\n", " 22.91765149399039,\n", " 28.148742067808286,\n", " 11.978692332637985,\n", " 10.90017247569964,\n", " 38.34168006230295,\n", " 11.978692332637985,\n", " 18.31786887167828,\n", " 21.315586785261154,\n", " 21.315586785261154,\n", " 18.31786887167828,\n", " 18.31786887167828,\n", " 10.90017247569964,\n", " 18.31786887167828,\n", " 22.91765149399039,\n", " 16.920151004054308,\n", " 15.588457268119896,\n", " 30.03734325801801,\n", " 34.037655765343175,\n", " 34.037655765343175,\n", " 95.71482810933738,\n", " 16.920151004054308,\n", " 13.118829216054303,\n", " 14.321713933744102,\n", " 28.148742067808286,\n", " 13.118829216054303,\n", " 53.14840063444996,\n", " 77.56881183826397,\n", " 10.90017247569964]" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "magnitudo_modifikasi = [mag**2.5 for mag in magnitudo]\n", "magnitudo_modifikasi" ] }, { "cell_type": "code", "execution_count": 78, "id": "experienced-barcelona", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "eq = plt.scatter(longitude, latitude, c=kedalaman, s=magnitudo_modifikasi, label=\"Episenter\", cmap=\"jet\", alpha=.75) # mengplot titik episenter\n", "plt.xlabel(\"Longitude [deg]\") #menambah label pada sumbu x\n", "plt.ylabel(\"Latitude [deg]\") # menambah label pada sumbu y\n", "plt.title(\"Persebaran Gempa di Mamuju pada \\n\" + \\\n", " \"{} sampai {}\".format(waktu[1].date(), waktu[0].date())) #keterangan waktu pada judul\n", "plt.grid()\n", "plt.colorbar(label=\"Kedalaman [km]\")\n", "plt.legend(*eq.legend_elements(\"sizes\", num=4, func=lambda x: x**(1/2.5)))" ] }, { "cell_type": "markdown", "id": "informal-replication", "metadata": {}, "source": [ "### Tambahan: Menambahkan Peta\n", "\n", "Modul Python yang memiliki fungsi khusus untuk menampilkan peta salah satunya adalah `Cartopy`. Setelah `cartopy` kita install kita dapat memodifikasi kode dari Thomas Lecocq yang ditampilkan di halaman [tutorial](https://scitools.org.uk/cartopy/docs/v0.14/examples/srtm_shading.html). Sebelum menjalankan kode kita harus membuat akun EarthData ([buat akun](https://urs.earthdata.nasa.gov/users/new))kemudian menjalankankode di bawah ini untuk login." ] }, { "cell_type": "code", "execution_count": 79, "id": "universal-burlington", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Apabila belum memiliki akun EarthData silahkan kunjungi https://urs.earthdata.nasa.gov/users/new\n", "Masukkan username: anangsahroni\n", "Masukkan password: ········\n" ] } ], "source": [ "# Referensi: https://github.com/SciTools/cartopy/issues/789 dengan ditambahkan form login dan getpass\n", "\n", "from http.cookiejar import CookieJar\n", "from urllib.parse import urlencode\n", "import urllib.request\n", "import getpass\n", "\n", "# The user credentials that will be used to authenticate access to the data\n", "print(\"Apabila belum memiliki akun EarthData silahkan kunjungi https://urs.earthdata.nasa.gov/users/new\")\n", "username = input(\"Masukkan username: \")\n", "passwd = getpass.getpass(\"Masukkan password: \")\n", "\n", "# The url of the file we wish to retrieve\n", "\n", "url = \"http://e4ftl01.cr.usgs.gov/\"\n", "\n", "# Create a password manager to deal with the 401 reponse that is returned from\n", "# Earthdata Login\n", "\n", "password_manager = urllib.request.HTTPPasswordMgrWithDefaultRealm()\n", "password_manager.add_password(None, \"https://urs.earthdata.nasa.gov\", username, passwd)\n", "\n", "# Create a cookie jar for storing cookies. This is used to store and return\n", "# the session cookie given to use by the data server (otherwise it will just\n", "# keep sending us back to Earthdata Login to authenticate). Ideally, we\n", "# should use a file based cookie jar to preserve cookies between runs. This\n", "# will make it much more efficient.\n", "\n", "cookie_jar = CookieJar()\n", "\n", "# Install all the handlers.\n", "\n", "opener = urllib.request.build_opener(\n", " urllib.request.HTTPBasicAuthHandler(password_manager),\n", " #urllib2.HTTPHandler(debuglevel=1), # Uncomment these two lines to see\n", " #urllib2.HTTPSHandler(debuglevel=1), # details of the requests/responses\n", " urllib.request.HTTPCookieProcessor(cookie_jar))\n", "urllib.request.install_opener(opener)\n", "\n", "# Create and submit the request. There are a wide range of exceptions that\n", "# can be thrown here, including HTTPError and URLError. These should be\n", "# caught and handled.\n", "\n", "request = urllib.request.Request(url)\n", "response = urllib.request.urlopen(request)\n", "\n", "# Print out the result (not a good idea with binary data!)\n", "\n", "body = response.read()\n", "#print(body)" ] }, { "cell_type": "markdown", "id": "celtic-modern", "metadata": {}, "source": [ "Setelah proses login selesai kita dapat melakukan plot dengan kode di bawah ini. Fungsi dan kode pada contoh di bawah ini terlihat lebih kompleks, tetapi kita sebenarnya hanya perlu berkonsentrasi pada:\n", "\n", "```python\n", "ax.set_extent([118.5, 119.2, -3.25, -2.65])\n", "```\n", "\n", "yang menjelaskan batas plot dalam derajat.\n", "\n", "\n", "```python\n", "eq = ax.scatter(longitude, latitude, zorder=12, s=magnitudo_modifikasi, c=kedalaman\\\n", " ,cmap=\"jet\", alpha=.6)\n", "\n", "fig.colorbar(eq, label=\"Kedalaman [km]\")\n", "\n", "plt.title(\"Persebaran Gempa di Mamuju pada \\n\" + \\\n", " \"{} sampai {}\".format(waktu[1].date(), waktu[0].date())) #keterangan waktu pada judul\n", "```\n", "\n", "menjelaskan plot dari data katalog kita, dan\n", "\n", "```python\n", "plt.legend(title=\"Magnitude\", loc=\"lower left\", \\\n", " *eq.legend_elements(\"sizes\", num=4, func=lambda x: x**(1/2.5))).set_zorder(102)\n", "plt.savefig(\"output/gempa_dem.png\", dpi=300)\n", "```\n", "\n", "judul plot dan lokasi penyimpanan output.\n" ] }, { "cell_type": "code", "execution_count": 81, "id": "secondary-question", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "\"\"\"\n", "Dimodifikasi dari: https://scitools.org.uk/cartopy/docs/v0.14/examples/srtm_shading.html\n", "This example illustrates the automatic download of STRM data, and adding of\n", "shading to create a so-called \"Shaded Relief SRTM\".\n", "\n", "Originally contributed by Thomas Lecocq (http://geophysique.be).\n", "\n", "\"\"\"\n", "import numpy as np\n", "import cartopy.crs as ccrs\n", "from cartopy.io import srtm\n", "import matplotlib.pyplot as plt\n", "\n", "from cartopy.io import PostprocessedRasterSource, LocatedImage\n", "from cartopy.io.srtm import SRTM3Source\n", "import cartopy.feature as cfeature\n", "\n", "def shade(located_elevations):\n", " \"\"\"\n", " Fungsi untuk memberikan hillshade pada data DEM\n", "\n", " \"\"\"\n", " new_img = srtm.add_shading(located_elevations.image,\n", " azimuth=135, altitude=15)\n", " return LocatedImage(new_img, located_elevations.extent)\n", "\n", "\n", "Source=SRTM3Source\n", "name='SRTM3'\n", "fig = plt.figure()\n", "ax = plt.axes(projection=ccrs.PlateCarree())\n", " \n", "# Define a raster source which uses the SRTM data and applies the\n", "# shade function when the data is retrieved.\n", "shaded_srtm = PostprocessedRasterSource(Source(), shade)\n", "\n", "# Add the shaded SRTM source to our map with a grayscale colormap.\n", "ax.add_raster(shaded_srtm, cmap='Greys', alpha=.75)\n", "\n", "# Add ocean from NaturalEarth\n", "# Add ocean from NE\n", "OCEAN = cfeature.NaturalEarthFeature(\n", " category='physical',\n", " name='ocean',\n", " scale='10m')\n", "ax.add_feature(OCEAN, zorder=10)\n", "\n", "\n", "# This data is high resolution, so pick a small area which has some\n", "# interesting orography.\n", "ax.set_extent([118.5, 119.2, -3.25, -2.65])\n", "ax.set_xlabel(\"Longitude [deg]\")\n", "ax.set_ylabel(\"Latitude [deg]\")\n", "\n", "#add eq\n", "eq = ax.scatter(longitude, latitude, zorder=12, s=magnitudo_modifikasi, c=kedalaman\\\n", " ,cmap=\"jet\", alpha=.6)\n", "\n", "fig.colorbar(eq, label=\"Kedalaman [km]\")\n", "\n", "plt.title(\"Persebaran Gempa di Mamuju pada \\n\" + \\\n", " \"{} sampai {}\".format(waktu[-1].date(), waktu[0].date())) #keterangan waktu pada judul\n", "\n", "gl = ax.gridlines(draw_labels=True, dms=False, x_inline=False, y_inline=False, zorder=11)\n", "\n", "gl.xlabels_top = False\n", "gl.ylabels_right = False\n", "\n", "plt.legend(title=\"Magnitude\", loc=\"lower left\", \\\n", " *eq.legend_elements(\"sizes\", num=4, func=lambda x: x**(1/2.5))).set_zorder(102)\n", "plt.savefig(\"output/gempa_dem.png\", dpi=300)" ] }, { "cell_type": "code", "execution_count": null, "id": "commercial-interim", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.8.5" } }, "nbformat": 4, "nbformat_minor": 5 }