Daha çox

ArcSDE -də boş həndəsə təmiri/yoxlanılması?


Standart qiymətləndirmə/təmir vasitələrinin ArcSDE ilə istifadə üçün olmadığını və ESRI-nin bunu düzəltməsi lazım olduğunu başa düşürəm, amma ən azı ArcObjects və ya skript istifadə edən bir xüsusiyyətdə boş həndəsənin ola biləcəyini yoxlamaq üçün iş yerləri varmı? Həqiqətən bir şey. ArcSDE nümunəsindəki təbəqələrdən xüsusiyyətləri ixrac etməyə çalışıram, ancaq verilənlər bazasındakı bəzi təbəqələr çıxarmağa çalışarkən "Boş həndəsə üzərində əməliyyat keçirildi" xətası verir. ArcMap 10.3 çalışıram


ArcGIS, pozulmuş həndəsələri aşkar etmək üçün alətləri ehtiva etmir, çünki onları yaratmaq mümkün deyil (SDE metadata cədvəllərini sındırmaq qısadır). Yerli SQL növləri bacarmaq ArcGIS boru kəmərində istifadə edilmirsə, lakin pozulmuş həndəsələri aşkar etmək, təmir etmək və ya silmək üçün yerli vasitələr var, buna görə heç bir Esri alətinə ehtiyac yoxdur.

Bir tərif və ya seçim sorğusuSHAPE NULLDURvə yaSHAPE NULL DEYİLNULL və ya NULL olmayan xüsusiyyətləri müəyyən etmək üçün sadə bir həlldir (bu, bütün saxlama növləri üçün işləyəcək). Bu bir səhv şərti deyil, təmir vasitələrinin lazım olmadığı təbii bir verilənlər bazası vəziyyətidir.

NIL formalarının aşkarlanması (ilə NULL olmayan formalar sıfır vertices), saxlama növünə görə SQL sorğuları ilə asanlıqla aşkar edilən fərqli bir problemdir (məsələn,WHERE sde.ST_NumPoints (forma) = 0). NIL formaları da etibarsız deyildir, çünki onlar yalnız verilənlər bazası təbəqəsi icazə verdikdə doldurula bilər ("npc", "npc+", "nslc+" və "nac+" varlıqlarının xüsusiyyətlərini qeyd edən "n"). NIL -ləri bir təbəqədən çıxarmaq üçün dəstəklənən hər hansı bir mexanizm əvvəlcə qatdakı NIL -ləri də silir.

Etibarsız həndəsələr yaratmağın ən çox yayılmış yolu, koordinat istinad dəqiqliyindən kənarda üfüqün kəsilməsi və ya təpə ardıcıllığı ilə nəticələnən uyğun olmayan proyeksiya parametrlərindən istifadə etməkdir. Bu obyektlər texniki cəhətdən deyil daxilində məlumat cədvəli və buna görə də aşkarlama/silmə vasitələrinə ehtiyac yoxdur.

Fayl sistemi korrupsiyasının yalnız daxili doğrulama yoxlamalarından keçəcək bir neçə fərqli bayt ardıcıllığında incə səhvlərə səbəb ola biləcəyindən daha çox korrupsiya məhsulu istehsal edən bir prosedur səhvinin olma ehtimalı daha çoxdur. baş verərsə, normal səbəbçilik qaydaları tətbiq olunmadığı üçün dərhal lotereya bileti almalısınız).


İşdə mənim həllim…

şübhəli təbəqəni arcmapda açın.
bütün verilənlər bazasına yaxınlaşdırın.
onu yalnız seçilə bilən qat halına gətirin (birdən çox varsa)
redaktəyə başlayın
bütün xüsusiyyətlər ətrafında bir seçim qutusu yaradın
seçimi dəyişdirin
indi hamınız var sde cədvəlindəki həndəsə satırları.
silmək


Saxlama növü olaraq ST_GEOMETRY ilə ArcSDE işlədiyinizi fərz etsək, boş həndəsələri yoxlamaq üçün ST_IsEmpty funksiyasından istifadə edə bilərsiniz. Bunu qatınıza tətbiq olunan bir tərif sorğusu daxilində edə bilərsiniz:

objectid IN (Sizin masaüstünüzdən obyekti SEÇİN sde.st_isempty (forma) = 1)

Unikal id sütununuza, cədvəl adınıza və verilənlər bazası arxa planına uyğun olaraq uyğunlaşdırın (yuxarıdakı nümunə Oracle üçün tətbiq olunur). Sorğunu versiyalı bir cədvəldə işləyərkən də diqqətli olun. Əgər belədirsə, sorğunu (çoxlu) versiyalı bir görünüşə qarşı çalıştırmalısınız.