Daha çox

PostGIS -də qonşuların itkin məlumatlarını necə interpolasiya etmək olar?


Verilmiş bir ölkə daxilində nöqtə məlumatları olan bir məlumat dəstim var. Tutaq ki, məlumat bazam bir qədər belə görünür:

tree_id | növ | yaş | geom ------------------------------ 0 | Kül | sıfır |… 1 | Fıstıq | 70 | … 2 | Kül | 10 |… 3 | Fıstıq | 70 | … 4 | Fıstıq | sıfır | … 5 | Fıstıq | 60 | … |… | ... | | …

Gördüyünüz kimi, verilənlər bazasında bəzi çatışmayan məlumatlar var. Məsələn,ağac_kimiyyəti 0yaşı yoxdur. Buna görə də bu dəyərləri 100 metr radiusda interpolasiya etmək istərdim.

Növlərin ortalamasını axtarıram. Nəticədə istifadə olunan nümunə ağacların sayı da göstərilməlidir. Nəticə cədvəli belə görünə bilər:

tree_id | age_avg | nümunələr --------------------------- 0 | 11.8 | 113 3 | 12.2 | 97 5 | 50.7 | 272… |… |…

Zəhmət olmasa bəzi PostgreSQL sorğu kodu ilə işə başlaya bilərsinizmi?


Tamam, buna görə yenidən başlayaq, bu istədiyinizi etmək üçün bir cavabdır, amma bu yalnız mənasız bir kontekstdə faydalı olacaq. Məsələn, bəzi məlumatların olmadığı və hər növ üçün "yerli orta ağac" çəkmək istədiyiniz bir 3D səhnəsi yaratmaq üçün.

Güman edirəm ki, orijinal masanıza "mytrees" deyilir.

Cədvəl mytree'lerinizdən iki ləqəb a & b yaradın, axtarış radiusunuzda bir b cədvəlinə qoşulun, sonra məcmulardan istifadə edərək hər nöqtə üçün məlumatları ümumiləşdirin.

A.tree_id, a.species, avg (b.age) age_avg olaraq seçin, nümunə olaraq (*) sayın, a.geom mytrees -dən SOL QOŞUL mytrees b ON ST_DWithin (a.geom, b.geom, 100) VƏ a .sürələr = b.türlər Qrupu a.tree_id, a.sürələr, a.geom SİFARİŞƏ a.tree_id

Yenə son bir xəbərdarlıq, işləyəcək amma İSTİFADƏ ETMƏYİN mənalı məlumatların təhlili üçün. Yalnız göstərmək üçün və ya konsepsiyanı sübut etmək üçün.

Redaktə edildi: John Barça'nın təklif etdiyi kimi ST_DWithin istifadə etmək daha asan