Pracując w ArcMap, natknąłem się na błędy w warstwie wielokąta, którą nazywam „flagowymi kawałkami” (zaczerpniętymi z podobnego języka w paczkach nazywanych „flagami”). Te wielokąty taśmy (patrz rysunek poniżej) zazwyczaj składają się z tylko jednego dodatkowego węzła, który użytkownik przypadkowo dodał.
Na poniższych obrazach „flaga” i „maszt flagowy” to jedna część, w której „maszt flagowy” po prostu nakłada się na siebie. Obraz po lewej stronie ma w sumie 5 węzłów.
Gdy są postrzegane same, błędy są bardzo oczywiste, ale gdy wiele wielokątów sąsiaduje, są prawie niemożliwe do zobaczenia, ponieważ wydają się być granicą między 2 wielokątami.
Prawdopodobnie dzieje się tak, ponieważ używają edytora opartego na plikach kształtu, dlatego nie mogę zaimplementować żadnych reguł edycji opartych na topologii, aby zapobiec takim sytuacjom w przyszłości.
Czy ktoś ma sposób na zidentyfikowanie i usunięcie tego rodzaju błędów? Wolałbym zautomatyzowaną metodę zarówno identyfikacji, jak i rozwiązywania problemów, ponieważ to użytkownicy w terenie są tymi, którzy stworzyli błędy, ale utknąłem po ich czyszczeniu. Dzięki.
źródło
Odpowiedzi:
jeśli masz dostęp do narzędzi Safe Fme, przekonasz się, że przydatny jest transformator zwany spikeRemover. Możesz wypróbować ograniczoną wersję SAFE FME do pobrania lub sprawdzić licencję ArcGis na „Rozszerzenie FME dla ArcGIS”
http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm
http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf
źródło
Nie jestem pewien, gdzie występuje problem lub gdzie można go uniknąć / naprawić. Ale często to widziałem w naszej bazie danych SDE, chociaż geometria w SDE powinna zawsze być poprawna. W naszym przypadku było tak, ponieważ zaimportowaliśmy pliki kształtu za pomocą ArcObjects do SDE. Po zapisaniu geometrii przyciągały one do siatki SDE i w ten sposób tworzyły nieprawidłowe geometrie za pomocą taśm, które opisujesz, gdy geometria miała cienki skok. Jest tak, ponieważ pliki kształtów mają pełną podwójną precyzję dla współrzędnych, a SDE grubszą siatkę.
Naszym rozwiązaniem było naprawienie geometrii, gdy zostały zaimportowane przez:
1. Ustaw odniesienie przestrzenne geometrii z
pliku kształtu do odniesienia przestrzennego odpowiedniej klasy obiektów SDE 2. Przyciągnij geometrię do odniesienia przestrzennego (IGeometry.SnapToSpatialReference () )
3. Ustaw ITopologicalOperator2.IsKnownSimple = false (ważne, w przeciwnym razie uproszczenie nic nie robi)
4. Wykonaj operację uproszczenia. W przypadku wielokątów użyliśmy IPolygon.SimplifyPreserveFromTo ()
źródło
W arcmap 9.3.1 dodawałbym pole o nazwie Flag (a może FlagFlag?) I używałem kodu VBA w kalkulatorze pola, aby obliczyć to pole.
Kod VBA ściemniałby zmienną jako ITopologicalOperator3 i ustawiał ją na pole Shape.
Wywołałby wówczas niezbyt prostą metodę IsSimpleEx .
Ustaw wartość pola Flaga na esriNonSimpleEnum . Przypuszczalnie błąd, którego dotyczy problem, powróci
esriNonSimpleSelfIntersections
.W wersji 10.0 może być na to sposób za pomocą Pythona w kalkulatorze (?) ... Nie jestem pewien. Użyłbym polecenia dodatku. IMO Esri powinna zapewnić obsługę c # w kalkulatorze polowym. W końcu kompilator c # jest instalowany jako część środowiska .NET.
Aktualizacja
Kod, który tu zamieściłem , może znaleźć słupy flagowe, jeśli zastosujesz wyrażenie Definicja
"Left_OID" = "Right_OID"
do wynikowego odtwarzacza polilinii.źródło
Ten skrypt w języku Python jest przydatnym narzędziem
Wyeliminuj wielokąty taśmy z plików kształtów
„EliminateSlivers.py przełącza wszystkie funkcje w pliku kształtu wielokąta i usuwa te z wyjściowego pliku kształtu, które spadają poniżej określonego progu obszaru.
Operacje geoprzetwarzania i tolerancje klastrów mogą spowodować nagromadzenie dodatkowych, niewielkich wielokątów taśmy. Mogą one być bez znaczenia i mogą zniekształcać wiarygodność danych przestrzennych. ”
Uwaga: będziesz musiał przetestować dane z różnymi tolerancjami (najpierw wykonaj kopię danych)
http://arcscripts.esri.com/details.asp?dbid=14672
źródło
Ryan,
Współpracowałem z biurem Soil Survey i okresowo sprawdzałem ich wielokąty glebowe. To, co robię, jest sprawdzane pod kątem taśm. Wysłałem klasę funkcji do zasięgu, a następnie zbudowałem je, aby oznaczyć błędy w celu oznaczenia. Jeśli widzisz 2 etykiety w jednym wielokącie, oznacza to błąd. Jeśli jest to jedna etykieta na wielokąt, wiesz, że jest poprawna. Chciałbym utworzyć klasę obiektów, aby zaznaczyć błąd. Możesz też wybrać jedną lub wiele etykiet w nowej klasie funkcji. W ten sposób możesz wrócić i naprawić błąd. Działa dla mnie bardzo dobrze z wielokątami gleby. Używam tego, aby poinformować naukowców zajmujących się glebą, aby rozwiązać problem.
To tylko mój sposób na zidentyfikowanie problemu. Po prostu udostępniam to tobie.
źródło
Jeśli identyfikacja nie jest głównym punktem, a jedynie automatyczna poprawka, spróbuj tego. Następnie dodaj dane do nowego pustego dokumentu mapy;
Przetestowałem to i wydaje się, że działa, ale nie jestem pewien, czy dokładnie skopiowałem Twoje źródło danych
Baw się dobrze, CDB
źródło
Oto kilka sposobów, aby przez to przejść i moim zdaniem najbardziej eleganckie jest użycie rozszerzenia o nazwie GIS Data Reviewer . GIS Data Reviewer umożliwia tworzenie spersonalizowanych i uproszczonych kontroli dokładności przestrzennej i atrybutów jako uzupełnienia podstawowej topologii. W obrębie topologii są rzeczy, które nie są dostępne, które są częścią standardowych kontroli dla Data Reviewer Like
Użyłbym tego do przesłuchania twoich danych. Innym sposobem jest stworzenie nowej klasy obiektów na podstawie istniejącej klasy obiektów wielokąta. a następnie utwórz nową klasę elementów Wielobok i wypełnij ją liniami za pomocą narzędzia do konstruowania cech na pasku narzędzi Topologia. Oznaczałoby to, że taśmy powinny być wtedy wyświetlane jako takie, a wszelkie inne narzędzia topologiczne powinny wykryć błąd. Następnie należy wybrać, usunąć i zastąpić funkcje w istniejącej klasie obiektów.
Mam nadzieję, że to pomaga, CDB
źródło