Daha çox

Masaüstü üçün ArcGIS istifadə edərək üst -üstə düşən tamponları silmədən başqa bir tampon içərisində bufer silinir?

Masaüstü üçün ArcGIS istifadə edərək üst -üstə düşən tamponları silmədən başqa bir tampon içərisində bufer silinir?


Mən bir ArcGis pro deyiləm, buna görə bu işdə yardıma ehtiyacım var və cavab axtarmağa çalışdım.

ArcMap 10.2.2 istifadə edirəm. Pythondan necə istifadə edəcəyimi bilmirəm.

Maraqlandığım saytların ətrafında 6km və 12km tamponlarım var. 12km tampondan 6km tamponu kəsə bilmək istəyirəm ki, yalnız 6km -dən 12km -ə qədər olan tamponları olan yeni bir qat əldə edim. Klip alətindən istifadə etməyə çalışdım, amma 12 km tampondan 6 km tamponu kəsmək əvəzinə, yalnız 6 km tamponun ətrafındakı 12 km ərazini kəsə bildiyim görünür (şəklə bax). Buferlərin hamısı eyni təbəqədədir.

Daha sonra silmək alətindən istifadə etməyə çalışdım. 6km tamponu işləyən 12km tampondan sildim, amma sonra hər yerdə tampon üst-üstə düşdü, silmək vasitəsi üst-üstə düşmə sahələrini kəsdi və yeni (6-12km) tamponların tam donuts olaraq qalmasını istəyirəm (şəkilə bax).

6km tamponu 12km tampondan üst -üstə düşmədən necə kəsmək və ya silmək olar? Şəkil:


Yalnız 2 tampon məsafəniz olduğu üçün bunu 2 asan əl ilə edə bilərsiniz (daha çox tampon məsafəniz olsaydı Polygeo kodunu istifadə etməyi məsləhət görürəm).

Addım 1: Bütün nöqtələriniz ətrafında 6 km məsafədə bir tampon yaratmaq üçün "Tampon" vasitəsini istifadə edin. Dissolve'i "Heç biri" olaraq təyin etdiyinizə əmin olun

Addım 2: 1 -ci addımda yaratdığınız tamponların ətrafında 6 km məsafədə bir tampon yaratmaq üçün "Birdən çox Zəng Tamponu" vasitəsini istifadə edin. Çözün "Heç biri" olaraq təyin etdiyinizə və "Yalnız Çoxbucaqlılar xaricində" qutusunu işarələdiyinizə əmin olun.

2-ci addımda yaratdığınız məlumatlar yalnız 6-12km aralığını göstərən tamponlar olacaq.


Bunu etmək üçün ArcPy -dən istifadə etməyiniz lazım olduğunu düşünürəm:

  • Axtarış Kursoru, nöqtələrinizin həndəsələrini bir -bir oxumaq üçün
  • hər nöqtə həndəsəsini iki dəfə (6km və 12km) tamponlayın və sonra 6km tampondan istifadə edərək bir halqalı çoxbucaq yaratmaq üçün 12km tampondan (fərqi istifadə edərək) silin.
  • annulus poliqonlarınız üçün yeni bir çoxbucaqlı xüsusiyyət sinfi yazmaq üçün İmleç Kursoru.

Arcpy.da ilə, minlərlə balınız olsa belə, düşünürəm ki, bu olduqca tez işləməlidir.

Bunu etmək üçün konsepsiya kodunun sübutunun asan olacağını düşündüm, buna görə davam etdim və yazdım. Test tamponlarım üçün 30 və 60 metr istifadə etdim.

idxal arcpy pointFC = r "C:  Temp  test.gdb  PointFC" annulusFC = r "C:  Temp  test.gdb  AnnulusFC" əgər arcpy.Exists (annulusFC): arcpy.Delete_management (annulusFC) arcpy.CreateFeatureclass_management ( r "C:  Temp  test.gdb", "AnnulusFC", "POLYGON", pointFC, "Əlil", "ƏSASLI", pointFC) iCursor = arcpy.da.InsertCursor (annulusFC, ["[email protected]"]) ilə arcpy.da.SearchCursor (pointFC, ["[email protected]"]) sCursor olaraq: sCursor'da pnt üçün: pntGeom = pnt [0] smallBufGeom = pntGeom.buffer (30) largeBufGeom = pntGeom.buffer (60) annulus (smallBufGeom) iCursor.insertRow ([annulusGeom]) del iCursor

Üç test nöqtəsi üçün giriş və çıxış xüsusiyyət sinifləri aşağıdakı kimi tərtib edilir: