mała biblioteka dyskretyzacji JS do reprezentacji choropleth


9

Chciałbym wiedzieć, czy istnieje mała gotowa do użycia biblioteka js stat / discretization js.

Wiem o istnieniu jStat (który mogę nieco dokładniej zbadać) i wiem, że mapfish ma moduł / widget geostats do tworzenia mapy choropleth - tutaj znalazłem kod . Ale to zależy od openlayerów i chciałbym mieć niezależną bibliotekę i ostatecznie mieć swobodę komunikacji z openlayers.

Chciałbym mieć kilka podstawowych metod:

  • min
  • max
  • oznaczać
  • mediana

i być w stanie wprowadzić następującą dyskretyzację z możliwością określenia liczby klas i dokładności (dziesiętne):

  • Kwantyl
  • Równy interwał
  • Natural Breaks (Jenks)

Jeśli jeszcze nie istnieje, prawdopodobnie sam coś koduję i wypuszczam na github na wolnej licencji. Wszelkie zasoby i porady są mile widziane.


1
Wygląda to podobnie - code.google.com/p/pseudosavant/source/browse/trunk/mathStats/… Czy jest jakiś powód, dla którego nie korzystasz z jStat?
geographika

Rzeczywiście wspomniana biblioteka mogła być dobrym początkiem. Dlaczego nie jstat? Ponieważ nie widziałem metod dyskretyzacji i właśnie tego szukałem w pierwszej
kolejności

Odpowiedzi:


18

Cóż, zakodowałem coś wczoraj i wydałem na licencji MIT.

Biblioteka o nazwie geostats jest dostępna na github . Pakiet zawiera przykłady. Będziesz także mógł zobaczyć go w akcji na stronie http://www.intermezzo-coop.eu/mapping/geostats/ (z konkretną próbką reprezentacji choropleth ).

Obsługuje 8 metod wymienionych powyżej:

  • Kwantyl
  • Równe odstępy czasu
  • Odchylenie standardowe
  • Postęp arytmetyczny
  • Postęp geometryczny
  • Natural Breaks (Jenks): Kod klasyfikacji Jenks został zaczerpnięty z Douga Curla .
  • Unikalne wartości
  • Klasyfikacja zdefiniowana przez użytkownika

Biblioteka zawiera także metodę renderowania legendy w formacie HTML . Zobacz przykłady legendy HTML, aby zobaczyć dostępne opcje (ciągłe, nieciągłe, odrębne klasy).

Próbka klasyfikacji kwantowej:

klasyfikacja kwantowa i legenda

Przykład klasyfikacji unikatowych wartości: wprowadź opis zdjęcia tutaj

Zobacz wersję demonstracyjną, która odczytuje wartości bezpośrednio z pliku kształtu (przy użyciu biblioteki Marc Harter).

Jeśli chcesz spróbować samodzielnie w 2 krokach, używając jsconsole :

Najpierw skopiuj / wklej do konsoli :

load("https://raw.github.com/simogeo/geostats/master/lib/geostats.js");

Następnie skopiuj / wklej:

var data = Array(12, 22, 5, 8, 43, 2, 34, 12, 34, 36, 5, 21, 23, 45, 12, 31, 38); 
serie = new geostats(data); 
serie.getEqInterval(4);
alert('Classification method : ' + serie.method + "\n\nClasses : " + serie.ranges.join(' | '));

Daj mi znać, jeśli znajdziesz jakiś błąd. Po raz kolejny mile widziane są wszelkie pomysły i sugestie dotyczące rozszerzenia biblioteki.

To wszystko! Mam nadzieję, że ci się przyda.


Ostrożnie - link jsconsole faktycznie wskazuje na „jconsole.com”, co jest przysiadem spamera. Nie mam wymaganej karmy, aby to naprawić. Czy ktoś może zaktualizować link? Może zawierać złośliwy kod.
Thibaut Barrère

1

Zachary Forest Johnson wykonał naprawdę świetną robotę, dostarczając analizy tematycznej na temat openlayerów.

Biblioteka jest na licencji BSD, dostępna na github . Więcej wyjaśnień na temat projektu i próbek można znaleźć na jego blogu .



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.