Weblog Tomasza Przechlewskiego [Zdjęcie T. Przechlewskiego]


scrum
random image [Photo gallery]
Zestawienie tagów
1-wire | 18b20 | 1wire | 2140 | 3rz | adamowicz | afera | alsamixer | amazon | amber | anniversary | antypis | apache | api | applebaum | arm | armenia | astronomy | asus | atom.xml | awk | aws | bachotek | bakłażan | balcerowicz | balta | banan | bash | batumi | berlin | białowieża | białystok | bibtex | bieszczady | biznes | blogger | blogging | blosxom | bme280 | bono | borne-sulinowo | breugel | bt747 | budapeszt | budyń | bursztyn | canon | cedewu | chaos | chello | chiller | chillerpl | chown | christophe dominici | chujowetaśmy | ciasto | cmentarz | contour | coronavirus | covi19 | covid | covid19 | cron | css | csv | cukinia | curl | cycling | d54250wykh | dbi | debian | dejavu | dhcp | dht22 | dia | docbook | dom | dp1500 | ds18b20 | duda | dulkiewicz | dyndns | dynia | ebay | economy | ecowitt | ekonomia | elka | elm | emacs | emacs23 | english | ep | erasmus | erasmusplus | ess | eu | eurostat | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc29 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | folau | fontforge | fontspec | fonty | food | fop | forms | foto | france | francja | fripp | froggit | fuczki | fuji | fuse | gammu | garden | garmin | gas | gawk | gazwyb | gdańsk | gdynia | gender | geo | geocoding | georgia | gft | ggplot | git | github | gmail | gmaps | gnokii | gnus | google | google apps script | googlecl | googleearth | googlemaps | gotowanie | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | gus | gw1000 | haldaemon | handbrake | hhi | historia | history | hitler | holocaust | holokaust | hp1000se | hpmini | humour | iblue747 | ical | iiyama | ikea | imagemagick | imap | inkscape | inne | internet | j10i2 | javascript | jhead | k800i | kajak | kamera | karob | kibbeh | kleinertest | kml | kmobiletools | knuth | kociewie kołem | kod | kolibki | komorowski | konwersja | krutynia | krynki | kuchnia | kurski | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | lgbt-folly | liban | liberation | linksys | linux | lisp | lisrel | litwa | lizbona | logika | ltr | lubowla | lwp | lwów | m2wś | malta | mapquest | mapsource | maradona | marchew | marimekko | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mevo | mh17 | michalak | michlmayr | microsoft | monitor | mp4box | mplayer | ms | msc | mssql | msw | mswindows | mtkbabel | museum | muzyka | mymaps | mysql | mz | nafisa | nanopi | natbib | navin | nekrolog | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nmea | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | ocr | odessa | okular | olympus | ooffice | ooxml | opera | osm | otf | otftotfm | other | overclocking | ozbekiston | panoramio | paryż | pdf | pdfpages | pdftex | pdftk | pedophilia | perl | photo | photography | picasa | picasaweb | pim | pine | pis | pit | plotly | pls | plugin | po | podcast | podlasie | podróże | pogoda | politics | polityka | polsat | portugalia | postęp | powerpoint | połtawa | prelink | problem | propaganda | pseudointeligencja | pstoedit | putin | python | pywws | r | r1984 | radio | random | raspberry | raspberry pi | raspberrypi | raspbian | refugees | relaxng | ridley | router | rower | rowery | rpi | rsync | rtf | ruby | rugby | rumunia | russia | rwc | rwc2007 | rwc2011 | rwc2019 | rzym | samba | sds011 | selenium | sem | sernik | sheevaplug | sienkiewicz | signature | sks | skype | skytraq | smoleńsk | sqlite | srtm | sshfs | ssl | staszek wawrykiewicz | statistcs | statistics | stats | statystyka | stix | stretch | supraśl | suwałki | svg | svn | swanetia | swornegacie | szwajcaria | słowacja | tbilisi | terrorism | tesseract | tex | texgyre | texlive | thunderbird | tomato | totalnaopozycja | tourism | tramp | trang | transylwania | truetype | trzaskowski | ttf | turcja | turkey | turystyka | tusk | tv | tv5monde | tweepy | twitter | tykocin | typetools | ubuntu | uchodźcy | udev | ue | ukraina | umap | unix | upc | updmap | ups | utf8 | uzbekistan | varia | video | vienna | virb edit | virbedit | vostro | wammu | wdc | wdfs | weather | weathercloud | webcam | webdav | webscrapping | weewx | wh2080 | wiedeń | wikicommons | wilno | win10 | windows | windows8 | wine | wioślarstwo | word | wordpress | wrt54gl | ws1080 | wtyczka | wunderground | ww2 | www | wybory | wybory2015 | włochy | węgry | xemex | xetex | xft | xhtml | xine | xml | xmllint | xsd | xslt | xvidtune | youtube | yum | zakopane | zakupy | zawodzie | zdf | zdrowie | zgony | łeba | świdnica | żywność
Archiwum
O stronie
wykorzystywany jest blosxom plus następujące wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musiałem dopasować nieco do swoich potrzeb. Więcej o blosxom jest tutaj
Subskrypcja
RSS 1.0
Lejkowiec już jest

Dziś znalazłem pierwsze tegoroczne lejkowce. W Lasach Oliwskich wokół Sopotu.

Dopisane 4 września 2008: W lesie naokoło Sopotu jest wysyp borowików jakiego najstarsi ludzie nie pamiętają... I do tego pełno lejkowców, które mało kto zbiera.

url | Wed, 27/08/2008 20:24 | tagi: ,
Wywiad z Knuthem w CACM

W numerach 7--8 Communications of the ACM jest wywiad z Knuthem (ściśle mówiąc: vol. 51 nos 7--8, 2008). Pierwsza część jest teraz nawet dostępna on-line. Fragment: Then a startup company came to me and said, [...] ``Name your price.'' I said ``Oh, okay, $100,000,'' assuming that this was [outrageous]. The guy didn't blink. He agreed. I didn't blink either. I said, ``I'm not going to do it. I just thought that was an impossible number.'' At that point I made the decision in my life that, I wasn't going to optimize my income.

url | Tue, 26/08/2008 20:03 | tagi: , ,
Przewyższenie i profil śladu

Etrex mimo, że nie ma barometru dość sensownie podaje wysokość npm. Jakoś do tej pory umknęło to mojej uwadze.

Poniżej skrypt wyznaczający długość trasy, łączną sumę wysokości podjazdów (przewyższenie, aka cumulative elevation gain) oraz rysujący profil w postaci pliku PNG. To ostatnie niekoniecznie jest sensowne, bo GD::Graph::lines traktuje dane z osi OX jako napisy a nie liczby i w związku z tym odstępy między poszczególnymi punktami na tej osi są równe. Zamiast GD::Graph::lines trzeba użyć czegoś innego, np. Chart::Graph::Gnuplot.

#!/usr/bin/perl
#
# Tworzy plik PNG przedstawiający profil śladu (wysokość mnpm)
# z danych podanych (jako argument skryptu) w pliku GPX
# tprzechlewski[_at_]gmail.com sierpień/2008
#
use XML::LibXML;
use Geo::Distance;
use Getopt::Long;

GetOptions( 'log' => \$print_log, 'pic' => \$print_pic, );

$usage = "Usage: $0 [-p | -l]  plik.gpx ;; -p generate PNG file ; -l show log.\n";

my $geo = new Geo::Distance;

my $file = shift || die "$usage"; 

my $parser = XML::LibXML->new;

open my $fh, $file || die "problems...";

$doc = $parser->parse_fh($fh);

my @tracks = $doc->getElementsByTagName('trk');
my $ptnum=0;

for $tx (@tracks) {

    @segments = $tx->getChildrenByTagName('trkseg');
    if ( $name = $tx->getChildrenByTagName('name')->[0] ) {  # pierwszy element to nazwa śladu
        if ($print_log)  { print "<!-- track:: ",  $name->textContent(), " -->\n"; } 
    }

    for $sx (@segments) {

      @points = $sx->getChildrenByTagName('trkpt');

      for $px (@points) {
         @data = $px->getChildrenByTagName('*');
         @attrs = $px->attributes();

         if ($print_log)  {  print "-> " ; }

         for $dx (@data) {
            if ($print_log)  { print $dx->nodeName, " = ", $dx->textContent(), " ; " ; }
            if ($dx->nodeName eq 'ele') { $ele = $dx->textContent();
		push @Elevations, $ele; 
	    }
         }

         for $ax (@attrs) {
            if ($print_log)  { print " ", $ax->nodeName, " = ", $ax->getValue() ; }
	    if ($ax->nodeName eq 'lon') { $lon = $ax->textContent() }
	    elsif ($ax->nodeName eq 'lat') { $lat = $ax->textContent() }
         }

          if ($print_log)  { print " ;;\n"; }

	 if ( $ptnum > 0 ) {
	   $curr_dist = $geo->distance( "meter", $plon, $plat => $lon, $lat );
	   $dist += $curr_dist ;
	   push @Distances, $curr_dist;
	   if (($ele_diff = $ele - $pele ) > 0) { $totalEleGain += $ele_diff ; }

	 } else { 
	   push @Distances, 0; 
	 }

	 $plon = $lon; $plat = $lat ; $pele = $ele ; $ptnum++;
      }
   }
}

# http://en.wikipedia.org/wiki/Cumulative_elevation_gain (przewyższenie):
printf "*** Dist: %.1f meters *** EleGain: $totalEleGain ***\n", $dist;

## Drukowanie profilu trasy

unless ( $print_pic ) { exit 0 }

use GD::Graph::lines;
use POSIX; # floor 

my $img_file = "${file}.png" ;

my @data = (\@Distances, \@Elevations, );

my $mygraph = GD::Graph::lines->new(400, 300);

# skip some dates to avoid label overlapping on X-axis:
my $x_factor = floor (($#Distances + 1) / 10 ) + 2;
print "$#Distances observations. X-axis labels printed evey ${x_factor}th one!\n";

$mygraph->set_text_clr('black');
$mygraph->set(
    x_label     => 'Dist',
    y_label     => '#',
    title       => "# Elev",
    # Draw datasets in 'solid', 'dashed' and 'dotted-dashed' lines
    line_types  => [1, 1, ],
    # Set the thickness of line
    line_width  => 2,
    # Set colors for datasets
    dclrs       => ['blue', 'red', 'cyan'],
    #x_tick_number => 'auto',
    x_label_skip => $x_factor,
    transparent => 0, ## non-transparent
    bgclr => 'white',
    fgclr => 'black',
    borderclrs => 'black',
    boxclr => '#ede7e7',
    labelclr => 'black',
    #axislabelclr,
    legendclr => 'black',
  ) or warn $mygraph->error;

  $mygraph->set_legend_font(GD::gdMediumBoldFont);
  $mygraph->set_legend('ele', 'ele2', '???');

  my $myimage = $mygraph->plot(\@data) or die $mygraph->error;

  ## for cgi script uncomment:
  ##print "Content-type: image/png\n\n";

  open ( IMG, ">$img_file") or die " *** Problems opening: $img_file ***" ;

  print IMG $myimage->png;

  close (IMG);

  ##print "@Distances\n"; ## debug

##

Wykorzystuję od jakiegoś czasu XML::LibXML. W skryptach do obsługi flickr.com korzystałem z XML::Simple ale do parsowania plików GPX ten pakiet się nie nadaje -- nie zachowuje porządku elementów (bo je czyta do hasza). W oczywisty sposób porządek punktów na śladzie nie może być dowolny.

A tutaj ktoś zrobił coś podobnego tyle, że używając Pythona.

url | Wed, 20/08/2008 09:23 | tagi: , , , ,
7 dni w Świdnicy
Feldmarschall K. von Plata (seht durch ein Fernglas) und seine Stabsoffiziere:-)

To była ciekawa wycieczka. Zwiedzaliśmy okolice Świdnicy oraz byliśmy na Śnieżce i w Górach Stołowych (Szczeliniec/Teplice). Wracając z Teplic zwiedziliśmy klasztor w Broumovie.

Doszło do niewielkiego bałaganu w zbiorze zdjęć przywiezionych z tygodniowego pobytu w Świdnicy. Zdjęcia z kilku dni przegrałem do jednego katalogu i hop, bez zbędnego myślenia uruchomiłem skrypt gpsPhoto.pl aby dodać współrzędne geograficzne. Po tej operacji czas modyfikacji każdego pliku ze zdjęciem się zmienił no i był mały kłopot z szybkim ustaleniem w którym dniu dane zdjęcie było zrobione. Oczywiście ta informacja nie została utracona, bo jest wartością pola DateTimeOriginal, tyle że ,,z poziomu'' wiersza poleceń tego nie widać.

Już chciałem jakiś skrypt klecić żeby pobierał DateTimeOriginal a następnie zmieniał czas modyfikacji pliku, ale w dokumentacji exiftool znalazłem gotowy przykład dokładnie robiący to, co chciałem osiągnąć:

exiftool "-Directory<DateTimeOriginal" -d "%Y-%m-%d" KATALOG

Powyższe przeniesie wszystkie pliki .jpeg z katalogu KATALOG do katalogów o nazwach postaci rok-miesiąc-dzień. Daty modyfikacji pliku to nie zmienia, ale samo uporządkowanie w odpowiednich katalogach w zupełności mi wystarczy.

Mój GPS Logger (używam Iblue 747) dwa razy zarejestrował ślad zawierający kolosalne odchylenie (biegun północny, tj. lat="90.000000000" lon="0.000000000"). Wcześniej nie obserwowałem tego fenomenu, tj. mówiąc dokładnie Etrex H nagminnie oszukuje podając np. średnią/maksymalną prędkość, ale zwykle zgrany ślad jest OK. Próbowałem poszukać jakiś automatycznych sposobów usunięcia takich anomalii ale nie znalazłem. Ostatecznie problem jest źle zdefiniowany więc automatem się nie da. Potrzebny jest edytor i wizualna inspekcja (np. MapSource ale to wyłącznie windziana aplikacja). Z braku takowego ślad wyświetlam na Google Maps a rażące odchylenia usuwam patrząc na współrzędne. Na moje potrzeby super korekta śladu nie jest potrzebna. Tak nawiasem mówiąc wspólnym mianownikiem Loggera i Etrexa jest chip firmy MTK. Ciekawe czy wszystkie czułe GPSy typu Sirf3/MTK robią takie błędy czy tylko MTK?

Ślady w formacie KML ze zdjęciami umieściłem tutaj: świdnica--książwlk.sowa--ludwikowiceszczeliniec--wambierzycekarpacz--śnieżkakompleks--osówka+zamek grodnoteplice--broumovślęża--tąpadła--sulistrowiczki

url | Tue, 19/08/2008 16:22 | tagi: , , , , ,