Chciałbym, aby następujące elementy wybrały (podświetliły) warstwę „projektu” przecinającą siatkę, a następnie pobrały zapis z wybranej „siatki”. Nie muszę zapisywać warstwy.
Uwaga: Uruchomienie skryptu z poziomu ArcMap w oknie konsoli Python.
import arcpy
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("project","project_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management("project_lyr","INTERSECT","Grid")
Ten kod działa i nie są podawane żadne błędy, ale nie wybiera (wyróżnia) żadnych funkcji. Masz pomysł, dlaczego? Działa również bardzo wolno.
Zasadniczo próbuję to zrobić:
Działa to naprawdę szybko, niemal natychmiast, ale chcę zrobić to samo przy użyciu Pythona. Potrzebuję tylko wartości z tabeli wybranej funkcji, nie potrzebuję kopii warstwy.
Częścią rozwiązania może być wykorzystanie obszaru roboczego w pamięci, którym jest
Zapisywanie danych w obszarze roboczym w pamięci jest często znacznie szybsze niż zapisywanie w innych formatach ...
Tylko nie wiem, jak zaimplementować obszar roboczy w pamięci
arcpy.MakeFeatureLayer()
linii, ponieważ project
jest ona już warstwą. Po prostu zrób arcpy.SelectLayerByLocation_management("project","INTERSECT","Grid")
.
import arcpy
polecenia zajmuje trochę czasu.