# **FAZA 1B_OR: Charakterystyka (model uproszczony, brak kalibracji danych Yanosik, zastąpienie danych o użytkownikach danymi o natężeniu ruchu z modeli ruchu)**
## Opis kodu:
1. [Program pierwszy - nowopowstałe drogi główne](https://hackmd.io/@yanosik/BkB0MNALn)
2. [Program drugi - pozostałe drogi](https://hackmd.io/@yanosik/H1EABxRU2)
## Charakterystyka
- Jest to wersja rekomendowana do zastosowania dla kolejnych Ocen Rocznych GIOS (stąd suffix "OR")
- Wykorzystanie modelu ruchu jako źródła realistycznych danych o natężeniu ruchu
- Zastosowanie narzędzia `gdal_grid` opartego o metodę interpolacji przestrzennej (inverse distance to power) do „przepisania" (za pomocą rastra) danych o nateżeniu ruchu z punktów referencyjnych do geometrii Yanosika
- Za pomocą modelu ruchu stworzenie zbioru punktów referencyjnych („sztuczne APR"). W przyszłości można rozważyć uwzględnienie punktów pomiarowych z ZDM, GDDKiA czy innych instytycji.
- Możliwość oszacowania natężenia ruchu na nowopowstałych drogach głównych – przepisanie natężenia ruchu ale prędkości średnie trzeba z góry przyjąć (nie będa pochodziły z danych Yanosik)
## Plan obliczeń – drogi główne
* Stworzenie zbioru APR/PPR na podstawie [danych z modelu ruchu](https://hackmd.io/@yanosik/H1jef5Fw2) – np. poprzez przecięcia geometrii modelu ruchu przez regularną siatkę o rozdzielczości np. 500m. Każdy punkt przecięcia przyjmuje dane z przeciętego odcinka segmentu drogi modelu ruchu
* Dla danych APR obliczenie sum natężenia ruchu w obu kierunkach (zmienna np. „trf") oraz średniej floty jako frakcje (so, sd, sc, bus)
* Pobranie z internetu aktualnych danych OSM z siecią dróg np. z [tego miejsca](https://download.geofabrik.de/europe/poland.html). Są to dane dla województw, wieć trzeba je zespolić w jedną całość dla całej Polski oraz wybranie dróg najwyższego rzędu (największe zmiany w sieci drogowej zachodzą w drogach ekspresowych i autostradach) – np. klasy 1 i 2 ([motorway i trunk](https://wiki.openstreetmap.org/wiki/Key:highway))
* Ze zbioru punktów APR wybranie tych które znajdują w małej odległości od osi dróg (np. +/-20 metrów) wysokiego rzędu (1 i 2, A i S, autostrady i drogi ekspresowe) – „apr12". Można inaczej – ale celem jest aby mieć zbiór APRów odpowiadającym drogom najwyższego rzędu.
* Uruchomienie gdal_grid za pomocą zbioru punktów „apr12" dla wartości „trf" oraz frakcji floty (w wyniku powstaje 5 rastrów)
* W danych OSM stworzenie kolumny identyfikującej dla każdego wiersza (np. „rowID"). Zamiana danych OSM na centroidy odcinków dróg z zachowaniem „rowID".
* Przepisanie wartości z rastrów do centroidów (funkcja `raster::extract()`)
* Dopisanie oryginalnych atrybutów odcinków drogi OSM czyli stworzenie ostatecznej postaci wektorów dróg z dopisanymi wartościami natężenia ruchu z rastrów. Uwaga: należy podzielić wartość trf przez dwa - założenie, że ruch jest identyczny w obydwu kierunkach. Alternatywnie: Obliczenie „trf24h" czyli dobowego natężęnia ruchu (łatwiej się czyta wizualnie w QGIS potem i porównuje) – suma roczna = suma dobowa * 300
* Prędkości średnie dla dróg głównych należy przyjąć za pomocą statystycznych Yanosik lub przyjąć dane OSM – kolumna „maxspeed"
* Obliczenie emisji i ewaluacja
## Pozostałe drogi
* Pozostałe drogi należy podzielić na decyle wg wartości "uu_hr" oraz analogicznie pozostałe PPRy/APRy. Wszystkie poniże kroki są powielone 10 azy po 1 dla każdego decyla
* w danych PPR/APR/CUPT stworzenie kolumny `trf` oznaczającej sumę natężenia ruchu w obu kierunkach
* selekcja danych CUPT i Yanosik , stworzenie i zapis podzbioru dla danego decyla
* uruchomienie narzędzia `gdal_grid` dla danych APR/PPR/CUPT - stworzenie przestrzennej reprezentacji zmiennej `trf` dla każdego decyla
* przepisanie danych z rastrów do centroidów segmentów dróg Yanosik i zamiana centroidów na oryginalne obiekty LINESTRING
* ewaluacja i obliczenie emisji
## Wady i zalety
* Metoda jest prosta i relatywnie szybka obliczeniowo (ale patrz podpunkt niżej)
* Najdłuższej trwa wybranie punktów referecyjnych które leżą w małej odległości od dróg głównych. W R można to zrobić przez st_intersection(x,y) gdzie: x:punkt referencyjny; y:poligon bedący buforem opisującym oś dróg). Ze względu na oszczędność czasu ten etap został wykonany w QGIS bo jest znacznie szybciej – narzędzie „zaznaczenie przez lokalizację")
* Niestety model ruchu CUPT symuluje drogi do wojewódzkich bez dróg niższego rzędu. W efekcie drogi z Yanosika „dostaną" dane teoretycznie zawyżone. Jednakowoż należy pamiętać, iż dane w modelu ruchu CUPT nie uwzględniają ruchu lokalnego, który w miastach stanowi znaczącą większość (~70 %). Stąd, teoretycznie, bilans może się kompensować.
* Wynikiem jest semi-realistyczne natężenie ruchu w geometrii wektorowej osi dróg, co pozwala policzyć emisje bez (przed) sumowania do siatki
* Wadą dla głównych dróg jest to, że łączniki zjazdy rozjazdy i inne ślimaki łączące główne arterie dostają taką samą wartość natężenia ruchu - choć można to jakoś statystycznie obniżyć
* Dzięki temu, że wynikiem jest natężenie ruchu w wektorach opisujących sieć dróg model można dodatkowo ewaluować (a może kalibrować?) za pomocą profesjonalnych pomiarów natężenia ruchu prowadzonych przez np. Zarząd Dróg Miejskich w Warszawie, GDDKiA, itp.
* **Model 1B wykorzystuje jedynie dane o prędkości z Yanosika zaniedbując informacje o liczbie użytkowników** `uu_hr` (natęzenie ruchu). Zmienna `uu_hr`służy jedynie do podziału danych Yanosik na decyle
* Zasadniczą wadą jest założenie, że ruch (oraz flota pojazdów) jest taki sam w obu kierunkach
* Rozwiązanie jest oparte tylko o dane z modelu ruchu, który symuluje natężenie ruchu dalekobieżnego zaniedbując ruch lokalny
* Interpolacja metodą inverse distance to power nie ma nic wspólnego z realnym zachowaniem kierowców na drogach w codziennym życiu. Interpolacja odbywa się na geometrii euklidesowej (po prostych liniach).
* W przypadku wersji programu, która uwzględnia nowopowstałe drogi główne (wersja dla OR) istotną wadą jest konieczność połączenia aktualnej geometrii dróg głównych (z 2023 roku) z geometrią dróg z roku 2017 (aktualność danych Yanosik). Taka operacja co do idei jest prosta: usunięcie dróg np. klas 1 i 2 z danych z 2017 i w ich miejsce wklejenie dróg z 2022. Niestety to prowadzi do podwójnego liczenia emisji gdyż nowo powstałe obwodnice przekierowały poza miasta ruch, który w 2017 odbywał się przez miasta. W przyszłości można by przy częściowym wykorzystaniu teorii grafów znaleść te drogi które w przeszłości służyły jako główne (te które zostały odciążone po otwarciu obwodnic). Jednakże przeprowadzenie tej operacji wymaga sporo ręcznej roboty w GIS (nie programistycznej)
* Brak możliwości dokładnego określenia wielkości ruchu lokalnego, gdyż punkty referencyjne (czy to z modelu ruchu czy to profesjonalne) nie są zlokalizowane na drogach niskiego rzędu
* Uruchomienie narzędzia `gdal_grid` dla wysokiej rozdzielczości jest czasochłonne obliczeniowo - szczególnie dla danych Yanosik. To jest spowodowane faktem, iż prędkość działa algorytmu `gdal_grid` zależy przede wszystkim od liczby uwzględnionych danych wejściowych (puntów, centroidów odcinków). Centroidy reprezentujące dane Yanosik są bardzo liczne gdyż jedna centroida odpowiada jednemu segmentowi drogi. Jeżeli dane Yanosik zostały poddane kafelkowaniu to centroidów jest bardzo dużo.
* Zdarza się, że drogi które nie są jeszcze czynne będą miały określone emisje gdyż OSM zawiera drogi nawet jeszcze nie otwarte