Mapy WIG

Pod adresem www.mapywig.org znajduje się archiwum map wydanych przez Wojskowy Instytut Geograficzny (WIG) w latach 1919-1939. Wydawane wówczas mapy (szczególnie edycja z końca lat trzydziestych) są do dzisiaj uważane za jedne z najlepszych na świecie dzieł sztuki kartograficznej i są doskonałym źródłem wiedzy o Polsce miedzywojennej (czyli nie znajdziemy tam map Warmii i Mazur czy Pomorza Zachodniego).

Cele projektu są ambitne:

  • Zbieranie i bezpłatne udostępnianie zeskanowanych map WIG wydanych w latach 1919-1939.
  • Publikacja innych materiałów związanych z działalnością WIG.

W tej chwili1) dostępnych jest m.in. ponad 530 plików zawierających zeskanowane mapy 1:100'000 (tzw. "setki")! Niestety serwis nie oferuje możliwości hurtowego pobierania danych i trzeba cierpliwie klikać na kolejne linki. Zajęcie trochę nudne. Ponieważ "potrzeba jest matką wynalazków" napisałem prosty skrypt w języku Rebol/VIEW, który pobierze wszystkie mapy i zapisze na dysk. Uwaga! Komplet 535 map zajmuje ponad 7GB!

W skrócie:

  • indeks map jest pobierany bezpośrednio z serwisu mapywig.org więc jest zawsze aktualny
  • mapy są zapisywane w katalogu z którego skrypt został uruchomiony
  • skrypt pomija pliki już wcześniej pobrane więc można go uruchamiać co jakiś czas by pobierać kolejne mapy
  • w zależności od wartości zmiennej QUIET skrypt będzie wyświetlał informacje o pobieraniych plikach
  • w zależności od wartości zmiennej ONLY-DPI300 skrypt pobierze albo wszystkie pliki map albo tylko 300dpi (niektóre mapy są udostępniane w kilku rozdzielczościach)
  • wymaga interpretera języka Rebol/VIEW
  • pobierane są tyko mapy WIG 1:100'000
  • skrypt na licencji LGPL


rebol [
  title: "WIG"
  description: "Pobiera mapy 1:100'000 z serwisu mapywig.org"
  author: "Piotr Gapiński"
  date: 2007-07-27
  license: 'LGPL
]
 
QUIET: false
ONLY-DPI300: yes
DPI-DIR: %300DPI/
 
page: read url: http://www.mapywig.org/viewpage.php?page_id=7
any [
  parse/all page [thru <table> copy wig to </table> to end]
  do [
    print ["brak listy map w serwisie" first split-path url]
    halt
  ]
]
 
url: copy []
make-dir DPI-DIR
parse/all wig [some [thru {href="} copy map to {">} (append url to-url map)] to end]
remove-each map url [all [ONLY-DPI300 (not found? find map "300dpi")]]
 
foreach map unique url [
  reduce decode-cgi join "new-name=" second split-path (to-file map)
  file: to-file new-name
  path: either found? find file "300DPI" [join DPI-DIR file] [file]
 
  either not exists? path [
    print [
      pick ["OK" "ERROR"] second reduce [
        time-elapsed: now
        to-logic either QUIET 
          [attempt [write/binary path read/binary/direct map true]] 
          [request-download/to map path]
        time-elapsed: difference now time-elapsed
      ]
      map time-elapsed "sec."
    ]
    attempt [rename path join (first split-path path) new-name]
    recycle
  ][
    print ["SKIP" map]
  ]
]
halt

Drugim projektem wartym przypomnienia jest www.mapy.eksploracja.pl Znajdziemy tam również mapy WIG oraz niemieckie, przedwojenne mapy terenów Prus Wschodnich i Zachodnich. Zestawiając mapy z obydwu serwisów możemy uzyskać pełny obraz dzisiejszego obszaru Polski.

Poniżej zamieszczam odpowiedni skrypt umożliwiający automatyczne pobranie map 1:100'000 z terenu Prus Wschodnich (niestety w serwisie nie ma jeszcze kompletu map z tego obszaru). W sumie 29 plików zajmujących ponad 200MB przestrzeni na dysku. Oczywiście manipulując odpowienio zmienną page oraz baseurl można za pomocą skryptu pobierać i inne mapy udostępniane w serwisie.

REBOL [
  title: "EKSPLORACJA"
  description: "Pobiera mapy messtischblatt z serwisu mapy.eksploracja.org"
  author: "Piotr Gapiński"
  date: 2007-06-29
  license: 'LGPL
]

QUIET: false
comment {Messtischblatt Prusy Wschodnie}
page: read url: http://www.mapy.eksploracja.pl/viewpage.php?page_id=45
baseurl: http://www.mapywig.org/kazik/messtischblatt/
any [
  parse/all page [to {<ul} thru {>} copy blatt to </ul> to end]
  do [
    print ["brak listy map w serwisie" first split-path url]
    halt
  ]
]

url: copy []
parse/all blatt [some [thru {href="} copy map to {">} (append url to-url map)] to end]
foreach map unique url [
  reduce decode-cgi join "file=" second split-path (to-file map)
  file: to-file new-name: join (copy/part file find file ".htm") ".jpg"
  map: join baseurl file

  either not exists? file [
    print [
      pick ["OK" "ERROR"] second reduce [
        time-elapsed: now
        to-logic either QUIET 
          [attempt [write/binary file read/binary/direct map true]] 
          [request-download/to map file]
        time-elapsed: difference now time-elapsed
      ]
      map time-elapsed "sec."
    ]
    attempt [rename file new-name]
    recycle
  ][
    print ["SKIP" map]
  ]
]
halt
1) lipiec 2007
autorzy/narg/zdarzenia/20070629_mapywig.txt · ostatnio zmienione: 2007/07/27 13:52 przez Piotr Gapiński
 
 
©2005-2010 by Pijoter · powered by DokuWiki · hosting by Yupo.pl