GOV/Statistik

aus GenWiki, dem genealogischen Lexikon zum Mitmachen.
< GOV
Zur Navigation springen Zur Suche springen

Animierte Karte

Koordinaten und Bearbeitungszeitpunkte in einer Tabelle zusammenstellen:

create temporary table visual ( date date, latitude double, longitude double);
insert into visual select distinct date(valid_from), latitude, longitude from gov_item, revision where gov_item.id=revision.item and latitude is not null;
insert into visual select distinct '2000-01-01', latitude, longitude from gov_item where id <= 149288 and latitude is not null;

Mit diesem Skript werden die Einzelbilder erzeugt:

#!/bin/bash
currentdate=$1
loopenddate=$(/bin/date --date "$2 1 day" +%Y-%m-%d)

until [ "$currentdate" = "$loopenddate" ]
do
        echo $currentdate
        echo "SELECT longitude, latitude from visual where date <= '$currentdate';"| mysql gov |grep -v longi > alt.txt
        echo "SELECT longitude, latitude from visual where date = '$currentdate';"| mysql gov |grep -v longi > neu.txt
        /usr/lib/gmt/bin/pscoast -R-7/32/44/58 -JM12.8i --PAPER_MEDIA=A2  -Di -A500 -W0.5p,white -P -K > temp.ps
        /usr/lib/gmt/bin/psxy alt.txt -R -JM -Sc0.01 -Gdarkblue -O -P -K >> temp.ps
        /usr/lib/gmt/bin/psxy neu.txt -R -JM -Sc0.05 -Gyellow -O -P >> temp.ps
        gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -q -r100 -sOutputFile=temp.png temp.ps
        convert temp.png -background black -flatten -trim -resize 1280x720! $currentdate.png
        currentdate=$(/bin/date --date "$currentdate 1 day" +%Y-%m-%d)
done

Die Jahreszahlen im Film werden jeweils in die Bilder zum Januar kopiert. Dazu habe ich ein schwarzes Bild (1280x720 Pixel groß) mit der Jahreszahl unten links erstellt. Mit folgenden Befehl wird es in die Einzelbilder gerechnet:

for p in 2012-01*; do pngtopnm $p > temp.ppm; rm $p; pnmarith -add temp.ppm text2012.pgm | pnmtopng  > $p; done

Die Einzelbilder werden dann zu einem Film verrechnet:

mencoder mf://20*.png -mf w=1280:h=720:fps=15:type=png -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -o gov.avi

Karte mit Regionen starker Bearbeitung

Tabelle gov_all_edits.txt mit allen Bearbeitungen erstellen:

select longitude, latitude,1 from revision, gov_item where item=gov_item.id and latitude is not null;

und mit folgenden Befehlen in eine Karte umwandeln.

/usr/lib/gmt/bin/blockmean gov_all_edits.txt -R-7/32/44/58 -I5m -Sz -C > gov_all_edits_5x5.xyg
/usr/lib/gmt/bin/xyz2grd gov_all_edits_5x5.xyg -R-7/32/44/58 -I5m -Ggov_all_edits_5x5.grd
# /usr/lib/gmt/bin/grd2cpt gov_all_edits_5x5.grd  > data.cpt
/usr/lib/gmt/bin/grdimage gov_all_edits_5x5.grd  -JM12.8i --PAPER_MEDIA=A2 -Cdata.cpt -B2 -K > map.ps
/usr/lib/gmt/bin/pscoast -R -J -Di -A500 -W0.5p,white -N1/0.25p,gray -O >> map.ps

Mit -I5m wird ein Raster von 5' festgelegt. Die Farbtabelle data.cpt kann man sich generieren lassen oder diese hier verwenden:

0       0       0       0       1       0       0       0
1       285     1       0.1     10      285     1       1
10      255     1       1       25      255     1       1
25      225     1       1       50      225     1       1
50      195     1       1       100     195     1       1
100     165     1       1       250     165     1       1
250     135     1       1       500     135     1       1
500     105     1       1       750     105     1       1
750     75      1       1       1000    75      1       1
1000    45      1       1       2000    45      1       1
2000    15      1       1       3500    15      1       1
B       0       0       0
F       0       0       1
N       0       0       0