Home › Lectures › GeoAI

🗺️ জিআইএস মৌলিক · GIS Fundamentals

স্থান ও মানচিত্রভিত্তিক ডেটা নিয়ে কাজের ভিত্তি।

The foundation for working with location and map data.

📅 ৫. জিওএআই⏳ ~4 সপ্তাহ📘 12 টপিক🧩 36 সাব-টপিক🎬 0 ভিডিও💻 রানযোগ্য কোড

🎯 যা শিখবেন / Outcomes

Handle CRS, vector/raster data, spatial SQL and web maps

🧰 টুলস / Tools

QGIS, GeoPandas, PostGIS, Leaflet

🏁 প্রজেক্ট / Capstone

Bangladesh upazila-level interactive map

📌 পূর্বশর্ত / Prerequisites

🐍 Python Programming 🗄️ SQL & Databases

📅

সাপ্তাহিক পরিকল্পনা · Weekly plan

~২ ঘণ্টা/দিন ধরে
1

What is GIS

Capture, store, analyse and map geographic data.
Beginner
📘 বাংলা: ভৌগোলিক তথ্য সংগ্রহ, সংরক্ষণ, বিশ্লেষণ ও মানচিত্রায়ন।
🌐 English: Capture, store, analyse and map geographic data.

💡 স্বাস্থ্য, দুর্যোগ, কৃষি, নগর—প্রায় সব সিদ্ধান্তের একটি "কোথায়" প্রশ্ন আছে।

  1. 1
    GIS = ভৌগোলিক তথ্য সংগ্রহ, সংরক্ষণ, বিশ্লেষণ ও উপস্থাপনের সিস্টেম
  2. 2
    উপাদান: ডেটা, সফটওয়্যার (QGIS, ArcGIS), হার্ডওয়্যার, মানুষ, পদ্ধতি
  3. 3
    প্রশ্নের ধরন: কোথায়? কী আছে? কীভাবে বদলেছে? কোন প্যাটার্ন? কী হলে কী হবে?
  4. 4
    প্রতিটি ফিচারের জ্যামিতি (আকৃতি) + অ্যাট্রিবিউট (তথ্য)
উপাদানডেটা, সফটওয়্যার, হার্ডওয়্যার, মানুষ, পদ্ধতি
প্রশ্নকোথায়? কেন সেখানে?
প্রয়োগনগর পরিকল্পনা, স্বাস্থ্য, কৃষি
2

Coordinate Reference Systems

WGS84, UTM and projections (BTM for Bangladesh).
Beginner
📘 বাংলা: WGS84, UTM, প্রজেকশন—বাংলাদেশে BTM।
🌐 English: WGS84, UTM and projections (BTM for Bangladesh).

💡 ভুল CRS = মানচিত্রে ভুল জায়গা ও ভুল দূরত্ব/ক্ষেত্রফল।

  1. 1
    ভৌগোলিক CRS (EPSG:4326, WGS84): অক্ষাংশ/দ্রাঘিমাংশ ডিগ্রিতে
  2. 2
    প্রজেক্টেড CRS: সমতলে মিটারে—বাংলাদেশে UTM 46N (EPSG:32646) বা BTM
  3. 3
    gdf.crs দিয়ে দেখুন; ভিন্ন লেয়ার একই CRS-এ আনুন: gdf.to_crs(32646)
  4. 4
    দূরত্ব/ক্ষেত্রফল/বাফার সবসময় প্রজেক্টেড CRS-এ
ভৌগোলিক (lat/lon) বনাম প্রজেক্টেড (মিটার)
EPSG কোড4326, 32646 (UTM 46N)
পুনঃপ্রজেকশনto_crs
3

Vector vs Raster Data

Points/lines/polygons vs pixel grids.
Beginner
📘 বাংলা: পয়েন্ট/লাইন/পলিগন বনাম পিক্সেল গ্রিড।
🌐 English: Points/lines/polygons vs pixel grids.

💡 কোন ডেটা মডেলে কী রাখা যায় ও কোন বিশ্লেষণ সম্ভব—মৌলিক সিদ্ধান্ত।

  1. 1
    ভেক্টর: পয়েন্ট (হাসপাতাল), লাইন (রাস্তা, নদী), পলিগন (জেলা)
  2. 2
    রাস্টার: পিক্সেল গ্রিড, প্রতিটি পিক্সেলে মান (উচ্চতা, তাপমাত্রা, স্যাটেলাইট ব্যান্ড)
  3. 3
    রেজোলিউশন: পিক্সেলের আকার (১০ মি, ৩০ মি)
  4. 4
    রূপান্তর: rasterize (ভেক্টর → রাস্টার), polygonize (রাস্টার → ভেক্টর)
ভেক্টরপয়েন্ট, লাইন, পলিগন
রাস্টারপিক্সেল গ্রিড ও রেজোলিউশন
কখন কোনটা ব্যবহার
4

QGIS Basics

Free, open-source desktop GIS.
Beginner
📘 বাংলা: ফ্রি ও ওপেন সোর্স GIS সফটওয়্যার।
🌐 English: Free, open-source desktop GIS.

💡 বিনামূল্যের পূর্ণাঙ্গ ডেস্কটপ GIS—মানচিত্র তৈরি ও বিশ্লেষণের প্রথম টুল।

  1. 1
    qgis.org থেকে LTR ভার্সন ইনস্টল; প্রজেক্ট CRS সেট করুন
  2. 2
    Layer → Add Layer দিয়ে shapefile/GeoPackage/CSV (XY) যোগ
  3. 3
    Symbology দিয়ে রং (Graduated/Categorized), Labels দিয়ে নাম
  4. 4
    Processing Toolbox (বাফার, ক্লিপ, জয়েন) ও Print Layout দিয়ে মানচিত্র রপ্তানি
লেয়ার যোগ ও স্টাইলিং
অ্যাট্রিবিউট টেবিল ও ফিল্ড ক্যালকুলেটর
প্রিন্ট লেআউট
5

Shapefile GeoJSON GeoPackage

Main geospatial file formats.
Intermediate
📘 বাংলা: প্রধান ভৌগোলিক ফাইল ফরম্যাট।
🌐 English: Main geospatial file formats.

💡 ডেটা আদান-প্রদানে সঠিক ফরম্যাট বাছাই—ভুল ফরম্যাটে তথ্য হারায়।

  1. 1
    Shapefile: বহুল প্রচলিত কিন্তু পুরোনো—.shp .shx .dbf .prj একসাথে লাগে, কলামের নাম ১০ অক্ষর
  2. 2
    GeoJSON: টেক্সটভিত্তিক, ওয়েব ম্যাপের জন্য আদর্শ, সবসময় WGS84
  3. 3
    GeoPackage (.gpkg): একক ফাইলে বহু লেয়ার, আধুনিক পছন্দ
  4. 4
    রাস্টার: GeoTIFF / Cloud-Optimized GeoTIFF
Shapefile.shp/.dbf/.prj একসাথে
GeoJSONওয়েবের জন্য
GeoPackageআধুনিক একক ফাইল
6

Spatial Joins & Overlay

Join data by location.
Intermediate
📘 বাংলা: লোকেশনের ভিত্তিতে ডেটা যুক্ত করা।
🌐 English: Join data by location.

💡 অবস্থানের ভিত্তিতে টেবিল জোড়া ও এলাকা একত্র—স্থানিক বিশ্লেষণের মূল অপারেশন।

  1. 1
    Spatial join: পয়েন্টকে পলিগনে বসানো—gpd.sjoin(points, districts, predicate="within")
  2. 2
    প্রতি পলিগনে গণনা: sjoin → groupby("district").size()
  3. 3
    Overlay: intersection (দুই স্তরের সাধারণ অংশ), union, difference
  4. 4
    Dissolve: উপজেলা → জেলা সীমানা একত্র (dissolve(by="district"))
Spatial joinwithin, intersects
Overlayintersection, union
Dissolveসীমানা একত্রীকরণ
7

Buffer & Proximity Analysis

Distance-based analysis.
Intermediate
📘 বাংলা: দূরত্বভিত্তিক বিশ্লেষণ।
🌐 English: Distance-based analysis.

💡 "কাছাকাছি কী আছে"—সেবা প্রাপ্তি ও ঝুঁকি বিশ্লেষণের প্রশ্ন।

  1. 1
    প্রজেক্টেড CRS-এ রূপান্তর
  2. 2
    buffer(5000): প্রতিটি হাসপাতালের চারপাশে ৫ কিমি এলাকা
  3. 3
    নিকটতম সুবিধা: sjoin_nearest দিয়ে প্রতিটি গ্রামের নিকটতম হাসপাতাল ও দূরত্ব
  4. 4
    সরলরেখা দূরত্ব বনাম রাস্তার দূরত্ব (network analysis, OSMnx)
Bufferনির্দিষ্ট দূরত্বের এলাকা
নিকটতম সুবিধা বিশ্লেষণ
সার্ভিস এরিয়া
8

GeoPandas

Vector GIS data in Python.
Intermediate
📘 বাংলা: পাইথনে ভেক্টর GIS ডেটা।
🌐 English: Vector GIS data in Python.

💡 Python-এ ভেক্টর GIS—স্বয়ংক্রিয়, পুনরুৎপাদনযোগ্য বিশ্লেষণ।

  1. 1
    gpd.read_file("districts.gpkg") — GeoDataFrame, বিশেষ geometry কলাম
  2. 2
    pandas-এর সব কাজ + স্থানিক: area, centroid, distance, buffer
  3. 3
    CSV থেকে পয়েন্ট: gpd.points_from_xy(df.lon, df.lat, crs=4326)
  4. 4
    gdf.plot(column="rate", legend=True), gdf.explore() (ইন্টারঅ্যাক্টিভ), to_file দিয়ে সেভ
GeoDataFrame ও geometry কলাম
read_file, plot, explore
sjoin ও dissolve
9

Rasterio & Xarray

Read and analyse rasters in Python.
Advanced
📘 বাংলা: পাইথনে রাস্টার ডেটা পড়া ও বিশ্লেষণ।
🌐 English: Read and analyse rasters in Python.

💡 স্যাটেলাইট, জলবায়ু ও উচ্চতার রাস্টার ডেটা Python-এ পড়া ও বিশ্লেষণ।

  1. 1
    rasterio.open("img.tif") — src.read(1), src.crs, src.transform, src.nodata
  2. 2
    mask দিয়ে পলিগনে ক্লিপ; window দিয়ে বড় ফাইলের অংশ
  3. 3
    rasterstats.zonal_stats দিয়ে প্রতিটি পলিগনে গড়/সর্বোচ্চ
  4. 4
    xarray/rioxarray: সময় × অক্ষাংশ × দ্রাঘিমাংশের বহুমাত্রিক ডেটা (NetCDF জলবায়ু ডেটা)
Rasterioব্যান্ড পড়া, মেটাডাটা
উইন্ডো ও মাস্ক
Xarrayবহুমাত্রিক সময়-সিরিজ রাস্টার
10

Web Mapping Leaflet Folium

Interactive web maps.
Advanced
📘 বাংলা: ইন্টারঅ্যাক্টিভ ওয়েব মানচিত্র।
🌐 English: Interactive web maps.

💡 বিশ্লেষণ ওয়েবে সবার কাছে—ইন্টারঅ্যাক্টিভ মানচিত্র।

  1. 1
    Leaflet (JavaScript): L.map, টাইল লেয়ার (OpenStreetMap), মার্কার, পপআপ
  2. 2
    GeoJSON লেয়ার ও style ফাংশন দিয়ে কোরোপ্লেথ
  3. 3
    Folium (Python): folium.Map, Choropleth, MarkerCluster → HTML
  4. 4
    লেয়ার কন্ট্রোল, লেজেন্ড, হিটম্যাপ প্লাগইন
Leafletটাইল লেয়ার, মার্কার, পপআপ
Foliumপাইথন থেকে Leaflet
কোরোপ্লেথ মানচিত্র
11

PostGIS Spatial SQL

Spatial queries inside a database.
Advanced
📘 বাংলা: ডাটাবেসে স্পেশিয়াল কুয়েরি।
🌐 English: Spatial queries inside a database.

💡 বড় স্থানিক ডেটা ডাটাবেসে রেখে SQL দিয়ে দ্রুত বিশ্লেষণ।

  1. 1
    PostgreSQL-এ CREATE EXTENSION postgis; geometry কলাম
  2. 2
    ফাংশন: ST_Within, ST_Intersects, ST_Distance, ST_Buffer, ST_Area
  3. 3
    স্পেশিয়াল ইনডেক্স: CREATE INDEX ... USING GIST(geom)
  4. 4
    QGIS ও GeoPandas (read_postgis) সরাসরি সংযোগ
ST_Distance, ST_Within, ST_Buffer
স্পেশিয়াল ইনডেক্স (GiST)
PostGIS + QGIS সংযোগ
12

Cartography & Map Design

Principles of readable, beautiful maps.
Advanced
📘 বাংলা: পাঠযোগ্য, সুন্দর মানচিত্রের নীতি।
🌐 English: Principles of readable, beautiful maps.

💡 সুন্দর ও সঠিক মানচিত্র বিশ্লেষণের বার্তা স্পষ্ট করে—ভুল মানচিত্র বিভ্রান্ত করে।

  1. 1
    আবশ্যিক উপাদান: শিরোনাম, লেজেন্ড, স্কেল বার, উত্তর তীর, উৎস ও তারিখ
  2. 2
    শ্রেণিবিন্যাস: quantile, natural breaks (Jenks), equal interval—ডেটা অনুযায়ী
  3. 3
    রং: ক্রমিক ডেটায় sequential, গড় থেকে বিচ্যুতিতে diverging; ColorBrewer
  4. 4
    কোরোপ্লেথে মোট সংখ্যা নয়, হার/ঘনত্ব দেখান
উপাদানশিরোনাম, লেজেন্ড, স্কেল, উত্তর তীর
রং নির্বাচনColorBrewer
ভিজ্যুয়াল হায়ারার্কি
💻

হাতে-কলমে কোড · Hands-on code

Run চাপুন — পাইথন আপনার ব্রাউজারেই চলবে (Ctrl+Enter)
import numpy as np, matplotlib.pyplot as plt
# Buffer & point-in-polygon without GIS libs
poly=np.array([[90.3,23.7],[90.5,23.7],[90.5,23.9],[90.3,23.9]])  # Dhaka bbox (lon,lat)
pts=np.random.default_rng(1).uniform([90.2,23.6],[90.6,24.0],(60,2))
inside=(pts[:,0]>=90.3)&(pts[:,0]<=90.5)&(pts[:,1]>=23.7)&(pts[:,1]<=23.9)
print("Points inside polygon:",inside.sum(),"/",len(pts))
plt.fill(*poly.T,alpha=.25); plt.scatter(*pts.T,c=np.where(inside,"#059669","#ef4444"),s=18)
plt.gca().set_aspect(1); plt.title("Point-in-polygon (spatial join idea)"); plt.show()
📝

অনুশীলন · Practice tasks

  1. QGIS-এ বাংলাদেশের জেলা মানচিত্র তৈরি করুন
  2. GeoPandas দিয়ে হাসপাতাল-জেলা spatial join
  3. Leaflet দিয়ে ইন্টারঅ্যাক্টিভ মানচিত্র প্রকাশ
  4. ক্যাপস্টোন: Bangladesh upazila-level interactive map
❓

কুইজ · Quick quiz

1. বাংলাদেশের জন্য প্রচলিত UTM জোন?

2. নিচের কোনটি রাস্টার?

🎬

ভিডিও লাইব্রেরি · Videos

সাইটের ভেতরে ফ্লোটিং প্লেয়ারে চলবে
এই শাখার ভিডিও এখনো সংরক্ষিত হয়নি। যেকোনো টপিক পেজ খুললে ভিডিও স্বয়ংক্রিয়ভাবে খুঁজে MySQL-এ সংরক্ষিত হবে (API key থাকলে)।

📺 Reference channels

🔗

সংযুক্ত বিষয় · Connected

← আগের শাখা🦾 Agentic AIপরের শাখা →🛰️ Remote Sensing
🎬 Video