Określ nieznaną liczbę rzeczywistych lokalizacji na podstawie raportów opartych na GPS


9

Pracuję nad oprogramowaniem, które powinno określać lokalizacje świata rzeczywistego (np. Kamery prędkości) na podstawie kilku raportów opartych na GPS . Zgłaszając lokalizację użytkownik będzie jechał samochodem, dlatego raporty będą bardzo niedokładne. Aby rozwiązać ten problem, muszę grupować raporty dotyczące tej samej lokalizacji i obliczać średnią.

Moje pytanie dotyczy sposobu grupowania tych raportów . Czytałem o algorytmach maksymalizacji oczekiwań i k-średnich , ale jak zrozumiałem, musiałbym wcześniej ustalić liczbę rzeczywistych lokalizacji.

Czy istnieją inne algorytmy, które nie potrzebują dokładnej liczby rzeczywistych lokalizacji, ale zamiast tego wykorzystują pewne warunki brzegowe (np. Minimalna odległość)?

Raport zawiera długość , szerokość i dokładność (w metrach). Nie ma nazwy ani niczego innego, co mogłoby być użyte do identyfikacji duplikatów.

Inną przeszkodą może być to, że będzie powszechne, że istnieje tylko jeden raport dla lokalizacji w świecie rzeczywistym. Utrudnia to odróżnienie wartości odstających od dobrych danych.


1
Nie jestem pewien, co masz na myśli mówiąc „... jak zrozumiałem, musiałbym wcześniej ustalić liczbę rzeczywistych lokalizacji ...” Zakładając, że dobrze cię zrozumiałem, algorytmy nie wymagają niczego to. Czy może planujesz zwiększyć liczbę komponentów klastra w oparciu o liczbę raportów?
Pat

1
Drugie pytanie :). Jeśli twoje raporty pochodzą od osoby, która prowadzi samochód, być może nastąpią znaczące zmiany pozycji między nimi. Czy raporty zawierają znacznik czasu informujący, kiedy zostały wzięte?
Pat

2
Cześć Pat. Mówię o korkach lub fotoradarach, aby było bardziej przejrzyste. 1. „k” w k-oznacza grupowanie oznacza liczbę klastrów. W moim przypadku miałbym jeden klaster dla każdej lokalizacji, podczas gdy nie wiem, ile jest różnych lokalizacji. 2. Tak, zawierają także znacznik czasu. Ale nie rozumiem, dlaczego to powinno być ważne, ponieważ zależy mi tylko na pozycji.
Christian Strempfer

1
1. Ach, rozumiem. Masz więc nieznaną liczbę lokalizacji, a każda lokalizacja generuje jeden lub więcej raportów. Jednak wszystko, co widzisz, to strumień raportów. Chcesz wnioskować, ile jest lokalizacji i ich położenie, na podstawie zaobserwowanych raportów. Czy to mam? 2. Martwię się o znaczniki czasu, ponieważ mówisz, że użytkownik będzie jechał, kiedy przekaże raport. W związku z tym, o ile raporty nie pojawiają się bardzo szybko lub prędkość jest bardzo niska (możliwe, jeśli jest to korek), pojedyncza lokalizacja będzie wyglądać jak nierówna linia raportów podążających drogą. Znaczniki czasu mogą tu pomóc
Pat

1
1. Tak, masz to. 2. Jest to zadanie ręczne, dlatego lokalizację należy zgłaszać tylko raz na użytkownika podczas jednej podróży. Ale masz rację, muszę poradzić sobie z duplikatami, gdy użytkownik przypadkowo kliknie dwukrotnie, a raporty będą niedokładne podczas szybkiej jazdy. Dlatego wspomniałem o stanie krawędzi minimalnej odległości między lokalizacjami. Zignorujmy korki, które mogą rozprzestrzeniać się na kilka kilometrów, i załóżmy, że lokalizacja jest bardzo mała.
Christian Strempfer

Odpowiedzi:


1

Znalazłem oprogramowanie, które może ci pomóc. Wygląda na to, że ktoś miał ten sam problem, co ty i dałeś mu rozwiązanie na tym forum , więc będziesz musiał użyć ArcGIS, ale jeśli szukasz algorytmu, sugeruje ten artykuł . Myślę, że artykuł jest wystarczająco szczegółowy, aby być dobrym początkiem od algorytmu.


2
Ponieważ wszystkie informacje zawarte w tej odpowiedzi znajdują się w jej linkach, a linki ostatecznie gniją, proszę przynajmniej podsumować, co polecają posty na forum i artykuł.
whuber
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.