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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77a0ba0fd34185b024c9d08a8742a6ac60b8080b4a553a36f6556e9c8984eefb
|
|
| MD5 |
08afcd56e7535c460a539b75adc7590c
|
|
| BLAKE2b-256 |
92c4d64a860697469f89f6542dfc5c2d5fbee3fc7f102ec78caf065393164044
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ef81ce05f623006df131e47bc8a64151e30280cf5601b847001c9c3f3b6d2be
|
|
| MD5 |
0fd991327a64ca5ad1cde26b48004b07
|
|
| BLAKE2b-256 |
cf9a58745006ad745a2e57290e7bb1b80fe589da73a85746fc38e63dae671eb1
|