@zgroza - bardziej chodzi o przypadki ewidentne jak ten przytoczony powyżej - w miejscu gdzie jest przejazd nie ma już nawet śladu po torach a droga jest po gruntownym remoncie i biegnie po nasypie - takie bym nie wprowadzał i ewentualnie zgłosił do UTK @maraf24 - w świetle powyższego zapisujesz jakoś te ewidentne przypadki, które wspomniałeś? @gscscnd - dokumentacja opisuje że tak to powinno zostać oznaczone więc w tym kierunku dokładnie bym szedł
Konkludując - na dzień dzisiejszy całe działania rozbiłbym na dwa projekty:
Robimy porządek z otrzymanymi przejazdami (na skróty) - zapisujemy ewidentne błędy i miejsca gdzie przejazdów i torów nie ma i odtworzenie ich byłoby de-facto zbudowaniem linii od nowa, brakujące istniejące tagujemy normalnie, brakujące na liniach kolejowych oznaczonych jako nieużywane oznaczamy również jako nieużywane używając namespace disused: (opcjonalnie jak ktoś chce może oczywiście weryfikować). Na tym etap kończymy - w wyniku tego mamy w bazie wszystkie przejazdy z wyjątkiem tych których ewidentnie nie ma.
Bierzemy aktualny stan sieci (Tomek SQ9NIT podpowie skąd) i na jego podstawie oznaczamy które linie są czynne a które nie - tu przy okazji zrobi się weryfikację czy wszystkie linie mamy wprowadzone i odpowiednio otagowane numerem linii. Być może udałoby się zrobić jakiś parser do tych danych (nie widziałem ich jeszcze) i jakiś kawałek softu, który wypluje raport z rozbieżnościami.
Co Wy na to? Jakieś antykoncepcje? Kontrkoncepcje? (Prosiłbym już w formie konkluzji żebyśmy posunęli się trochę z tymi ustaleniami do przodu)
Ewidentnie nieistniejące przejazdy są tylko w MapRoulette jak “not an issue”.
Jest też kilka takich przypadków w tym co zostało w zadaniu oznaczone jako “too hard”.
W przypadku linii abandoned to dane są w OSM jako abandoned:railway=level_crossing (lub =crossing).
Bezpiecznym rozwiązaniem jest tagować je normalnie, a jak ktoś chce, to może zweryfikować, czy faktycznie są nieużywane i dodać “disused:”.
Bo railway=disused w OSM to może być też linia kolejowa po której lada moment pojadą pociągi.
Tych przejezdów będziemy mieć więcej - bo będą też te, które kiedyś były zmapowane a dziś już nie istnieją.
Chodzi mi o np. takie przypadki na liniach abandoned - https://www.openstreetmap.org/node/4027557721, ale też na liniach po remontach, gdzie wskutek tych remontów, znikają przejazdy.
W efekcie akcji pojawiły się przejazdy w miejscach gdzie fizycznie je już zlikwidowano, ale są nadal na orto. Gdzie je zgłaszamy? Na przykład 133 025 542, 133 039 809. Kilku kolejnych na LK133 też chyba nie ma, ale nie jestem pewny.
Co z tym zrobić na przyszłość, bo nie ma wątpliwości, że za chwilę te przejazdy znowu ktoś wrysuje. Zostawić otwarte uwagi?
Ale linia 133 bynajmniej nie jest disused/abandoned. Jest w remoncie, który pociąga za sobą celową (fizyczną) likwidację większości przejazdów kolejowych. Nie wiem, czy ktoś zauważy, że jest tam jakiś punkt z tagiem note. Na razie zostawiłem uwagi.
W miejscu zlikwidowanego przejazdu daj abandoned:railway=level_crossing z opcjonalną note, wtedy nawet jak ktoś przez pomyłkę doda znów przejazd to później będzie łatwo naprawić.
Stan linii nie ma tu znaczenia.
OK, to skoro mamy przejazdy to ja bym powoli dodał te pozostałe dane. Jak pisałem - numerek w ref, do tego dałbym source:ref=#zoltanaklejkaplk, Nie wiem co robimy z tymi pozostałymi polami? Importujemy? Olewamy? Jeśli importujemy to w jakie tagi?
Dlaczego nie wartość source:ref jak w oryginale, czyli #ŻółtaNaklejkaPLK :)? Tutaj raczej nie ma wymogów OSM co do stosowanych znaków.
Resztę pól bym olał, chyba że ktoś potrafi wskazać ich przydatność.
Postaram się w takim razie w ten weekend dodać do istniejących przejazdów ref i source:ref. Skoro nikt do tej pory się nie odezwał zakładam że pozostałe tagi nie są potrzebne… a jak się okaże że jednak potrzebne są to mając refy nie będzie trudno je dodać.
Tam gdzie tory są ale nieużywane - zarówno disused:railway=level_crossing jak i railway=level_crossing z disused=yes wyglądają OK, choć bardziej mi pasuje ten drugi format jako przyjaźniejszy dla użytkowników (nieużywany przejazd jest przejazdem, w przeciwieństwie do sklepu gdzie zamknięty sklep przestaje być sklepem)
Konkluzja była chyba taka, że zostawiamy spacje… i tak miałem zamiar zrobić
Co do wiki to guidelines są bardziej napisane pod importy sensu stricte… a to będzie czysta automatyczna edycja - wszystkie obiekty już zostały dodane, ja tylko puszczę jakiegoś węża, który nada im odpowiednie refy zgodnie z plikiem który dostaliśmy… nie wiem czy jest sens robić z tego ‘wielkie halo’… pewnie nawet nikt tej edycji nie zauważy.
No, ref-y są importowane. Jednak jest pełne poparcie, import nie jest jakoś istotny specjalnie, nikt chyba nie będzie się czepiał… Wspominam bo gdyby rygorystycznie przestrzegać zasad to strona powinna być.
Nie bardzo jest tu pole do popisu w temacie grupowania - sprawdziłem odległości między przejazdami w danych - nie wykazały kolizji, więc założyłem, że wszystkie przejazdy w odległości 0.0005 stopnia od punktu który dostaliśmy można bezpiecznie oznaczyć.
def create_changes(crossings):
res = []
for crossing in crossings:
if crossing.osm_not_tagged:
for node in crossing.osm_not_tagged:
if node.tags.get("ref"):
if node.tags["ref"] == crossing.id:
log.debug(f"Node id:{node.id} istnieje w bazie, pomijam")
continue
node.tags["old_ref"] = node.tags["ref"]
node.tags["ref"] = crossing.id
node.tags["source:ref"] = "#ŻółtaNaklejkaPLK"
res.append(node)
return res
Jeśli przejazd ma refa to sprawdzam czy jest zgodny z refem z żółtej naklejki - jeśli tak to pomijam, jeśli nie to przepisuję wartośc do old_ref