<jupyter_start><jupyter_text>Bài thi môn: Lập trình GIS Họ và tên: <NAME> Mã học viên: 1981080153 Lớp: Địa Tin học K38 Mã đề: 01  `Câu 1: Import thư viện pandas, geopandas. Cho phép hiển thị dòng dữ liệu tối đa của pandas là 20`<jupyter_code>%matplotlib inline

import pandas as pd
import geopandas

pd.options.display.max_rows = 20<jupyter_output><empty_output><jupyter_text>`Câu 2: Nhập dữ liệu không gian địa lý cho đối tượng thủy hệ và gán vào tên biến là rivers`- Sử dụng hàm geopandas.read_file- file zip có sẵn trong thư mục '/data/ne_50m_rivers_lake_centerlines.zip'<jupyter_code>rivers = geopandas.read_file("zip://./data/ne_50m_rivers_lake_centerlines.zip")<jupyter_output><empty_output><jupyter_text>`Câu 3: Lấy ra 15 đối tượng đầu tiên của rivers`<jupyter_code>rivers.head(15)<jupyter_output><empty_output><jupyter_text>`Câu 4: Sử dụng .plot() để đưa ra bản đồ thủy hệ của đối tượng river`<jupyter_code>rivers.plot()<jupyter_output><empty_output><jupyter_text>`Câu 5: Đưa ra thông tin hình học của đối tượng rivers bằng cách sử dụng thuộc tính .geometry`<jupyter_code>rivers.geometry<jupyter_output><empty_output><jupyter_text>`Câu 6: In ra độ dài của các con sông sử dụng hàm .length`<jupyter_code>rivers.length<jupyter_output><empty_output><jupyter_text>`Câu 7: Tính toán trung vị scale rank của tất cả các con sông bằng cách truy cập thuộc tính 'scalerank' và sử dụng phương thức mean()`<jupyter_code>rivers['scalerank'].mean()<jupyter_output><empty_output><jupyter_text>`Câu 8: Sử dụng bộ lọc boolean để lấy ra con sông có tên là 'Kama', đưa ra hình dạng của nó`<jupyter_code>kama = rivers[rivers['name'] == 'Kama']
kama.plot()<jupyter_output><empty_output><jupyter_text>`Câu 9: Lấy ra sông có tên là Abay, tính độ dài trung bình`<jupyter_code>abay = rivers[rivers['name'] == 'Abay']
abay.length.mean()<jupyter_output><empty_output><jupyter_text>`Câu 10: Đưa ra hệ thống tham chiếu tọa độ của rivers, sử dụng thuộc tính .crs`<jupyter_code>rivers.crs<jupyter_output><empty_output><jupyter_text>`Câu 11: Import thư viện statistics`<jupyter_code>import statistics<jupyter_output><empty_output><jupyter_text>`Câu 12: Tính giá trị trung bình sử dụng hàm mean của một số dữ liệu sau [11,2,13,14,44]`<jupyter_code>statistics.mean([11, 2, 13, 14, 44])<jupyter_output><empty_output><jupyter_text>`Câu 13: Import thư viện pandas, geopandas`<jupyter_code>%matplotlib inline

import pandas as pd
import geopandas as gpd<jupyter_output><empty_output><jupyter_text>`Câu 14: Nhập dữ liệu không gian địa lý, tên biến là df`- Sử dụng hàm gpd.read_file- file zip có sẵn trong thư mục 'data/berlin-districts.geojson'<jupyter_code>df = gpd.read_file("data/berlin-districts.geojson")<jupyter_output><empty_output><jupyter_text>`Câu 15: Sử dụng .head để lấy 10 giá trị hàng đầu của df`<jupyter_code>df.head(10)<jupyter_output><empty_output><jupyter_text>`Câu 16: Sử dụng .plot() để đưa ra đồ thị của cột 'district_group'`<jupyter_code>df.plot(column='district_group')<jupyter_output><empty_output><jupyter_text>`Câu 17: Tính toán trung vị bằng cách truy cập cột 'median_price' và sử dụng phương thức trung vị`<jupyter_code>df['median_price'].mean()<jupyter_output><empty_output><jupyter_text>`Câu 18: Sử dụng bộ thư viện pandas, geopandas, matplotlib.pyplot và dữ liệu lấy từ thư mục 'data/berlin-districts.geojson'. Hiển thị lược đồ cho cột "district_group":`- Hãy thay đổi kích thước của lược đồ 15x15- Thêm 1 tùy chọn scheme, sử dụng scheme 'Quantiles'- Thêm phần chú giải, hiển thị 4 lớp giá trị của bản đồ (k=4)<jupyter_code>%matplotlib inline

import pandas as pd
import geopandas as gpd
import matplotlib.pyplot as plt
x = gpd.read_file('data/berlin-districts.geojson')
fig, ax = plt.subplots(figsize=(15,15))
x.plot(column='district_group', scheme='Quantiles',  k = 4, legend=True, ax=ax)<jupyter_output><empty_output><jupyter_text>`Câu 19: Trực quan hóa dựa trên web, sử dụng thư viện folium, như sau:`- Import thư viện pandas, geopandas, folium- Nhập vào dữ liệu countries từ thư mục '/data/ne_110m_admin_0_countries.zip'- Đưa ra bản đồ khu vực Hà Nội ở dạng OpenStreetMap với mức zoom là 10<jupyter_code>%matplotlib inline

import pandas as pd
import geopandas
import folium
countries = geopandas.read_file("zip://./data/ne_110m_admin_0_countries.zip")
hanoi = folium.Map([21.0228161,105.801944], zoom_start=10, tiles="OpenStreetMap")
folium.GeoJson(countries.to_json()).add_to(hanoi)
hanoi<jupyter_output><empty_output><jupyter_text>`Câu 20: Sử dụng thư viện pandas và geopandas, khai báo dữ liệu rivers và countries: Sử dụng hàm geopandas.read_file, file zip có sẵn trong thư mục '/data/ne_50m_rivers_lake_centerlines.zip' và '/data/ne_110m_admin_0_countries.zip'`- Trích xuất dòng sông Amazon ở Nam Mỹ- Truy vấn các quốc gia mà dòng sông chảy qua<jupyter_code>%matplotlib inline

import pandas as pd
import geopandas

#pd.options.display.max_rows = 20
rivers = geopandas.read_file("zip://./data/ne_50m_rivers_lake_centerlines.zip")
countries = geopandas.read_file("zip://./data/ne_110m_admin_0_countries.zip")
amazon = rivers[rivers['name'] == 'Amazonas'].geometry.squeeze()
countries[countries.crosses(amazon)]  # or .intersects<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1074124250048384, 'fraction_numerical': 0.02612734662279853, 'mean_word_length': 6.622418879056047, 'pattern_counts': {'":': 1, '<': 82, '<?xml version=': 0, '>': 82, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '20', 'dir': 'jupyter-structured-clean-dedup', 'id': '401871', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 2583, 'n_tokens_neox': 2484, 'n_words': 540, 'path': 'BaiKiemTra_NguyenThuyDuong.ipynb', 'repo_name': 'DuongVit/BTLT_GIS', 'size': '5178'}