Skip to main content

GIS uchun soddalashtirilgan buyruqlar tili (Python ustida ishlaydi) — Uzbek-friendly domain-specific language for GIS/RS

Project description

notLang

GIS uchun soddalashtirilgan buyruqlar tili. Python ustida ishlaydi, natijada uzun GDAL/rasterio/geopandas kodi o'rniga 2-3 qatorlik notLang skripti yeziladi.

O'rnatish

Eng qulay usul — GitHub'dan to'g'ridan-to'g'ri (zip yuklash shart emas):

pip install git+https://github.com/<GITHUB_USER>/notlang.git

Colab/Jupyter'da (GEE va Jupyter qo'llab-quvvatlashi bilan):

!pip install "notlang[gee,jupyter] @ git+https://github.com/<GITHUB_USER>/notlang.git"

Mahalliy (development) rejimida:

pip install -e .

O'rnatgandan so'ng notlang komandasi terminalda, PowerShell'da va CMD'da ishlaydi:

notlang                # interaktiv rejim (REPL)
notlang skript.nl       # skript faylini ishga tushirish
notlang --version       # versiyani ko'rsatish

Holat: Faza 2 (interpretator ulandi — notLang endi ishlaydi!)

Endi notlang haqiqiy buyruqlarni bajaradi. Misol skript:

load "hudud.geojson" as a
info a
stats a
show a to "hudud.png"

load "mask.geojson" as m
clip a with m -> a_clip
save a_clip to "natija.geojson"

buffer a 500 -> a_buf
reproject a to 3857 -> a_3857

Ishga tushirish:

notlang skript.nl        # faylni ishga tushirish
notlang                  # interaktiv rejim (REPL), qator-qator yozish

REPL'da help yozsangiz barcha buyruqlar ro'yxati chiqadi.

Qo'llab-quvvatlanadigan buyruqlar (Faza 2)

Buyruq Misol
load load "a.shp" as x
show show x title "Sarlavha" color "red" to "chiqish.png"
info info x
stats stats x
list list x shapeName
save save x to "chiqish.geojson"
filter filter x where "shapeName == 'Xorazm'" -> y
clip clip x with mask -> y
merge merge x y -> z (ikkita vektor)
mosaic mosaic x y -> z (ikkita rastr)
ndvi ndvi x 3 4 -> z (red-band nir-band)
zonal_stats zonal_stats raster with zonalar -> t (min/max/mean/std)
chart chart x ustun bar to "grafik.png" (bar/hist/line)
install install "paket-nomi" (kerakli kutubxonani o'rnatadi)
buffer buffer x 500 -> y
reproject reproject x to 4326 -> y

Sinash uchun:

python make_test_data.py        # sinov fayllarini yaratadi
python test_core.py             # runtime funksiyalarini sinaydi
notlang examples/skript.nl      # to'liq notLang skriptini ishga tushiradi

Keyingi bosqichlar rejasi uchun loyihaning to'liq hujjatiga qarang (Faza 5: GEE/Copernicus ulanish).

Jupyter / Google Colab'da ishlatish (Faza 4)

Avval o'rnating (Jupyter/Colab qo'llab-quvvatlashi bilan):

pip install -e ".[jupyter]"

Notebook katagida:

%load_ext notlang

Keyin har qanday katakda:

%%notlang
load "hudud.geojson" as a
info a
show a

O'zgaruvchilar (a kabi) keyingi kataklarda ham ishlatilaveradi — xuddi REPL'dagidek, bitta sessiya davomida saqlanib qoladi.

Bitta qatorlik buyruq uchun (katak emas, bitta qator):

%notlang_line show a

Google Colab'da ham xuddi shunday ishlaydi — avval !pip install notlang[jupyter] (yoki paketni yuklab, !pip install -e .), so'ng %load_ext notlang deb yozish kifoya.

Google Earth Engine'ga ulanish (Faza 5)

Avval o'rnating:

pip install -e ".[gee]"

Ishlatish (REPL, skript yoki %%notlang — barchasida bir xil):

connect gee

Birinchi marta ishlatganda brauzerda Google login oynasi ochiladi (Colab'da bu link ko'rinishida chiqadi — uni bosib, Google hisobingiz bilan ruxsat berasiz). Sizda Earth Engine yoqilgan Google Cloud loyihasi (project) bo'lishi kerak — https://code.earthengine.google.com/ orqali ro'yxatdan o'ting.

Tasvir olish:

load "hudud.geojson" as region
connect gee
get "COPERNICUS/S2_SR_HARMONIC" date "2024-01-01" "2024-02-01" bbox region -> img
info img
show img

get buyrug'i berilgan kolleksiyadan (dataset), sana oralig'ida, region qatlamining chegara qutisi (bounding box) ichidagi barcha tasvirlarning median kompozitini yuklab, mahalliy rastr sifatida qaytaradi. Katta hududlar yoki uzoq sana oralig'i GEE eksport chegarasiga (odatda ~10-50 MB) tegishi mumkin — shunday xato chiqsa, hududni yoki sana oralig'ini kichraytiring.

Diqqat: bu qismni men (Claude) o'z muhitimda haqiqiy Google hisobi bilan sinab ko'ra olmadim — internetga chiqish cheklangan. Kod sintaksis va mantiq jihatidan tekshirilgan (xato holatlari to'g'ri ushlanadi), lekin haqiqiy autentifikatsiya va tasvir yuklashni o'zingizning muhitingizda (Colab tavsiya etiladi) sinab ko'rishingiz kerak.

Copernicus Data Space'ga ulanish (Faza 5b)

Dataspace.copernicus.eu da ro'yxatdan o'ting, so'ng User Settings -> OAuth clients bo'limidan client_id va client_secret oling.

connect copernicus "client_id" "client_secret"

Tasvir olish (Sentinel-2 L2A, ko'k/yashil/qizil/NIR bandlari — B02, B03, B04, B08):

load "hudud.geojson" as region
connect copernicus "client_id" "client_secret"
get_sentinel date "2024-01-01" "2024-02-01" bbox region scale 100 -> img
info img
show img

Bu autentifikatsiya OAuth client_credentials oqimi orqali ishlaydi (brauzer kerak emas, GEE'dan farqli). Sinovda ulanish kodi haqiqiy Copernicus serveriga yetib bordi va noto'g'ri kredensial uchun to'g'ri 403 xatosi qaytardi — demak so'rov formati to'g'ri; siz faqat haqiqiy client_id/client_secret bilan sinashingiz kerak.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notlang-0.1.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notlang-0.1.0-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file notlang-0.1.0.tar.gz.

File metadata

  • Download URL: notlang-0.1.0.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for notlang-0.1.0.tar.gz
Algorithm Hash digest
SHA256 77a0ba0fd34185b024c9d08a8742a6ac60b8080b4a553a36f6556e9c8984eefb
MD5 08afcd56e7535c460a539b75adc7590c
BLAKE2b-256 92c4d64a860697469f89f6542dfc5c2d5fbee3fc7f102ec78caf065393164044

See more details on using hashes here.

File details

Details for the file notlang-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: notlang-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for notlang-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9ef81ce05f623006df131e47bc8a64151e30280cf5601b847001c9c3f3b6d2be
MD5 0fd991327a64ca5ad1cde26b48004b07
BLAKE2b-256 cf9a58745006ad745a2e57290e7bb1b80fe589da73a85746fc38e63dae671eb1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page