Oczekujesz, że ArcPy zastąpi pliki w pliku geobazy?

13

Piszę skrypt w języku Python, mam plik MXD, a jego obszarem roboczym jest plik geobazy zawierający wszystkie potrzebne pliki. Problem, który napotykam podczas testowania i pisania kodu, polega na tym, że pomimo polecenia:

arcpy.env.overwriteOutput=True

wszystkie pliki zawarte w geobazie nie mogą zostać zastąpione. Jest sposób na obejście tego?

Annalisa Minelli
źródło
Czy w ArcMap zaznaczyłeś opcję „Zastąp wyniki operacji geoprzetwarzania” w Geoprocessing> Opcje geoprzetwarzania?
Baltok
tak. Ale nie działało.
Annalisa Minelli,
3
Czy znasz jakieś blokady schematu danych? To również może zapobiec zastąpieniu. Geobazy plików i osobiste są szczególnie wrażliwe na to, ponieważ jeśli jedna klasa obiektów ma blokadę, blokuje całą geobazę.
Baltok
2
Kiedy mówisz, że „wszystkie pliki zawarte w geobazie nie mogą zostać zastąpione”, masz na myśli, że skrypt się nie udaje lub kończy, ale po prostu nie zastępuje klas funkcji, które powinien?
Chad Cooper
spróbuj uruchomić kod z IDE Pythona, takiego jak PyScripter, a następnie zamknij ArcMap.
geogeek

Odpowiedzi:

16

Jeśli dobrze pamiętam, są pewne sytuacje, w których overwriteOutput nie będzie działać. W takim przypadku użyj następującego kodu przed wypisaniem nowych plików:

if arcpy.Exists(fileInQuestion):
    arcpy.Delete_management(fileInQuestion)
bluefoot
źródło
1

Upewnij się, że geobaza danych pliku nie jest skompresowana, tzn. Tylko do odczytu.

użytkownik12711
źródło
0

Miałem również ten problem, a komentarz na temat blokad schematu naprawdę pomógł. Jeśli masz MXD z tą klasą funkcji, to blokuje tę klasę funkcji, więc nie można jej usunąć. Jeśli po prostu wyjdziesz z mxd, który zawiera tę klasę funkcji i uruchomisz ten sam kod zastępujący, wydaje się, że działa.

JJay
źródło