Strona 1 z 2

Konwersja map rastrowych na format img

PostNapisane: N, 14 gru 2008 14:31
przez Azzie
Witam,

Co jakiś czas pojawia się pytanie jak skonwertować mapy rastrowe (jpg, png, bmp, tiff) na format Garmina (img). Zwykle odpowiedź sprowadza się do odpowiedzi że się nie da, albo polega na przekierowaniu na strone GPSManiaka (http://www.gpsmaniak.com). Czasy się zmieniają, więc chyba warto rozwinąć temat.

Po pierwsze, nowe Garminy obsługują mapy rastrowe tak po prostu. W końcu BlueChart g2 Vision zawiera zdjęcia satelitarne. Niestety nie są mi znane narzędzia pozwalające takie mapy tworzyć samodzielnie. Niektóre odbiorniki pozwalają wgrywać i przeglądać zdjęcia, co oznacza że można również wrzucić skany map, ale bez kalibracji (powiązania ze wspórzędnymi geograficznymi) funkcjonalność takich map jest mocno ograniczona.

Po drugie, istnieją narzędzie dokonujące automatycznej konwersji skalibrowanych map rastrowych na dane wektorowe. Niektóre integrują się nawet z cgpsmapperem i pozwalają automatycznie wyprodukować mapę wyglądającą w odbiorniku prawie jak wektor. Warto rzucić okiem na http://freegeographytools.com/2008/conv ... th-bmap2mp gdzie kilka takich programów jest opisanych, w tym płatne Moagu (http://moagu.com/) i Mapwel (http://www.mapwel.biz/) oraz darmowe bmap2mp (http://ysbits.net/bmap2mp/, http://tech.groups.yahoo.com/group/map_ ... ssage/9864).

Po trzecie, najbardziej perspektywicznym rozwiązaniem wciąż pozostaje wykreślenie mapy samodzielnie na wektorowym podkładzie. Mapa taka będzie bardziej funkcjonalna niż skonwertowany raster czy nawet oryginalny raster z kalibracją. Więc mimo powolnego rozwoju sytuacji, chyba wciąż pozostaje nam klikanie mapek i odsyłanie zainteresowanych na http://www.gpsmaniak.com

Re: Konwersja map rastrowych na format img

PostNapisane: Śr, 18 lut 2009 19:41
przez soko
Polecam Mapwela.
Program wyszedł z powijaków i jest powiedzmy w wieku dziecięcym. Pozostałe programy - delikatnie mówiąc - prezentują się nędznie.
Ponizej, screenshoty z mapek zwektoryzowanych Mapwelem na 60CSx, Colorado, te same mapy na OziExplorer, i te same mapy w postaci skanów (150dpi) z papierowych map tego samego terenu. Trochę z terenu górskiego i trochę znad morza, dla ukazania jak wygląda ekran dla różnych barw.
Do wektoryzacji uzyłem gotowych mapek pod Ozi (nie wymagają nawet kalibracji - Mapwel je sam wczytuje i kalibruje), te same mapki są na ekranie FSLoox N560 w Ozim. Mapki Gór Białych( Levka Ori) na Krecie skala 1:25000, wydawnictwo Anavasi. Zasięg każdej z 3 mapek widać na jednym ze screenshotów.

Minusy takiej wektoryzacji:
1. Optymalny zoom dla tej skali w zakresie jak na screenshotach, przy zoomach powyżej 800mtr praktycznie nieużyteczny obraz.
2. Używać można na raz w zasadzie tylko jednej mapki (jednego zwektoryzowanego pod garmina pliku .img), gdyż przy dwu i więcej są znaczne przekłamania kolorów.

Plusy:
3. Wektoryzacja trwa kilka minut , jest prosta i nie wymaga żadnych dodatkowych programów. Bez żadnej filozofii mamy po kilku, kilkunastu minutach gotową mapę wektorową dość dużego obszaru.


Poniżej zasięg omawianych 3 mapek:

Obrazek

Tak wyglądają mapy papierowe:
Obrazek Obrazek

Obraz w Colorado:
Obrazek Obrazek Obrazek
Obrazek Obrazek Obrazek

Obraz w 60CSx:
Obrazek Obrazek Obrazek Obrazek Obrazek Obrazek

I pod Ozim w FSN560:
Obrazek Obrazek Obrazek

Polecam Mapwela
Krzysztof

P.S. Mapy papierowe Anavasi zawierają na odwrocie szkic z treścią turystyczną (to tak na marginesie):
Obrazek

Re: Konwersja map rastrowych na format img

PostNapisane: Cz, 20 sie 2009 21:30
przez soko
Jest coraz lepiej.
Dzięki okienkowemu Gmaptoolowi można obecnie pozmieniać FID tak dla pliku mapy jak i dla pliku .typ. W efekcie tworzymy osobne indywidualnie widziane i listowane mapy. Wykorzystując Gmaptoola można opisać dowolnie oba pola "mapsetowe" widziane w Colorado i zmieścić tam wiecej informacji o mapie i jej wersji. Aktualny firmware umożliwia spokojne manipulowanie tymi plikami .img, jako że mogą mieć różne nazwy. Sama nazwa pliku .img może być inna niż tekst w obu polach mapsetowych, co też daje dodatkową 3 informację (widzianą co prawda dopiero po włożeniu karty do PDA, ale zawsze coś.)

Obrazek

W efekcie 3 powyżej omawiane mapki mam wylistowane osobno, każda ma zostawiony tylko jeden plik .typ ze zmienionym FID i PID ( takim jak mapset), każda ma inny FID i PID, kolorystyka map nie cierpi, każdą osobno można włączać i wyłączać, a także oczywiście wyświetlać razem. Dodatkowo można uzyskać (choć do końca nie wiem dlaczego) efekt plastyczności po aktywowaniu mapy Europy z danymi wysokościowymi (Recreational Map of Europe v2.00).

Poniżej ekran bez podkładu RME2.00 i z podkładem wysokościowym:
Obrazek Obrazek

Szczegóły w dyskusji obok : viewtopic.php?p=75641#p75641
Kwieto dziękuję za dociekliwość i odświeżenie tematu, Popejowi za cenne uwagi (i za Gmaptoola). :D
=============
EDIT:(21/08/2009) - Kilka uwag:
1. Żeby zmienić FID i PID pliku .typ - trzeba w "Opcje" zaptaszkować "Zaawansowane ustawienia" i "Opcje eksperymentalne". Wtedy dopiero w zakładce "Wpisz"> można zaptaszkować "Koryguj TYP" i wpisać sobie numery FID i PID do okienek. Pamiętać jednak wtedy trzeba, by w zakladce "Pliki" był wybrany (podświetlony na niebiesko) właśnie ten plik. Po operacji zmiany PID i FID, powinny się zmienić te dane w tym oknie listowania pliku .typ.
2. Dane do górnej części listingu danych mapy w Colorado (te większe litery) - wpisujemy w zakładce "Łącz" w oknie "Mapset". jak wpiszemy za dużo, tekst nachodzi na trzecią linijkę i zakrywa tekst dolny ( patrz ekran)
3. Dane dla dolnej części listingu (te mniejsze litery) - w zakładce "Wpisz" w oknie "Mapset". Ilość liter można wyliczyć ze screena powyżej, wchodzi na ekran tyle ile widać i nic więcej.
4. Nazwa pliku, taka jaka będzie widziana na PC (PDA) w trybie menedżera plików jest do wpisania w zakładce "Łącz" w okienku "Plik". Należy podać nazwę pliku z rozszerzeniem .img. Gmaptool tego nie robi. Oczywiście zawsze te literki .img można później dopisać do nazwy pliku.

Pozdrawiam Krzysztof

Re: Konwersja map rastrowych na format img

PostNapisane: Cz, 20 sie 2009 21:57
przez kwieto
soko napisał(a):Dodatkowo można uzyskać (choć do końca nie wiem dlaczego) efekt plastyczności po aktywowaniu mapy Europy z danymi wysokościowymi (Recreational Map of Europe v2.00).


Czy przypadkiem ta mapa (Recreational Map of Europe) nie jest wpisana w pamięci wewnętrznej, w pliku gmapprom.img?

Jeśli tak, to polecam ten post:
viewtopic.php?f=5&t=5912&st=0&sk=t&sd=a&hilit=TRE#p68989

Akapit drugi i trzeci.
Każda mapa przejmuje plastykę z cieniowanej mapy, która jest w hierarchii wyświetlania niżej. Plik gmapprom jest drugi od końca w hierarchii, niżej jest tylko gmapbmap.
Dlatego sam do cieniowania map Polski wsadziłem sobie do pamięci wewnętrznej "goły" plastyczny podkład, który ktoś tutaj kiedyś linkował. Oczywiście zapisałem go w pliku gmapprom.img.
Teraz jestem w stanie uplastycznić każdą mapę Polski, którą mam na karcie - włączając jednocześnie wyświetlanie tego podkładu.

Można się jeszcze bawić parametrami TRE, jednak nadanie odpowiedniej nazwy pliku jest mniej inwazyjne

Re: Konwersja map rastrowych na format img

PostNapisane: Pt, 21 sie 2009 11:19
przez soko
Oczywiście w gmapprom.img.
A bazowa świata w gmapbmap.img
Pozdrawiam.

Re: Konwersja map rastrowych na format img

PostNapisane: N, 23 sie 2009 20:05
przez kwieto
No to teraz ja się pochwalę pewnym rozwiązaniem.

Wskazany przez Popeja sposób, polegający na rozdzieleniu mapy, a następnie ponownym połączeniu przy jednoczesnej podmianie PID i FID załatwia sprawę tylko częściowo.
Problem jest taki, że każdy zwektoryzowany przez Mapwela arkusz musi stanowić osobny Mapset, wyświetlać się osobno na liście map do wyboru i tak dalej.
Nie przeszkadza to, gdy wektoryzujemy pojedyncze mapy różnych terenów, jednak gdybyśmy chcieli pokryć w ten sposób większy obszar, na który składa się kilka, czy kilkadziesiąt arkuszy mapowych, sprawa robi się cokolwiek kłopotliwa.

Chcąc zwektoryzować np. kilkadziesiąt arkuszy "ruskich pięćdziesiątek", składających się na mapę kraju do którego się wybieramy (a dla którego nie ma dobrych map wektorowych lub są one nieprzyzwoicie drogie) stajemy przed sporym problemem:

Jeśli zwektoryzujemy każdy arkusz z osobna - źle, bo ciężko potem będzie zarządzać tym wszystkim w odbiorniku
Druga opcja, czyli połączenie wszystkich arkuszy w jedną całość też może być ciężko wykonalne, poza tym pozostaje pytanie co zrobić, jeśli jeden (i tylko jeden) arkusz będziemy chcieli poprawić lub dodać - wektoryzować całość od nowa?
Nie mówiąc już o tym, że perspektywa kupowania programu typu Global Mapper (c.a. 300USD) po to, by raz w roku połączyć sobie kilka arkuszy, jest mało zachęcająca.

Okazuje się, że można tę sprawę rozwiązać prościej, uzyskując 100% powtarzalność pliku TYP tworzonego w Mapwelu.
Nie będę ściemniał, że sam na to wpadłem - na rozwiązanie naprowadziła mnie mapa BGTopoVJ, wskazana przez Asandrzeja. Twórcy tej mapy zwektoryzowali arkusze ruskich 50-tek pokrywające Bułgarię, Macedonię i sporą część państw ościennych (w sumie 544 arkusze map) uzyskując mapwelowe pliki (ponad 5000 osobnych plików img) wykorzystujące jeden (sic!) szesnastokolorowy plik TYP.

Jak tego dokonali? Okazuje się, że bardzo prosto. Wystarczy zaawansowany program graficzny (GIMP, Photoshop, etc) i trochę cierpliwości.
Poniżej instrukcja - jako że korzystam z Photoshopa, dedykowana jest dla tego programu. Opis jest do anglojęzycznej wersjo programu, bo taką mam zainstalowaną na komputerze:

Najpierw musimy wczytać odpowiedni obrazek. Następnie należy zmienić tryb obsługi kolorów na takzwany "kolor zindeksowany" - w Photoshopie jest to menu "Image", opcja "Mode"

Obrazek

Pojawi się nam okienko dialogowe z opcjami do wyboru. Większość z nich trzeba dobrać "na czuja", tak aby obrazek po przetworzeniu obrazek nie stracił na czytelności.

Najbardziej interesują nas dwie opcje: Palette i Colors. Pierwsza z nich to wybór palety wg której kolory zostają zindeksowane (z moich doświadczeń wynika, że przy tworzeniu pierwszego obrazka najlepiej wybrać którąś z odmian palety "lokalnej"), druga zaś to liczba kolorów do których ma zostać ograniczony obrazek po przetworzeniu (na widocznym przykładzie - 36 kolorów) Dalsza część okna dialogowego dotyczy tego, w jaki sposób kolory mają zostać przetworzone, tak aby jak najlepiej zastąpić kolory które będą "wycięte" z obrazka wyjściowego.
Podgląd pozwala nam na przejrzenie, czy efekt nas zadowala i jeśli tak - klikamy OK po czym obrazek jest przetwarzany na tryb zindeksowanej kolorystyki.


Obrazek

Kolejnym krokiem jest sprawdzenie i zapisanie stworzonej palety kolorów. Wracamy do menu "Image" > "Mode" i wybieramy (nieaktywną wcześniej) opcję "Color Table"

Obrazek
Obrazek

Jak widać powyżej, otwiera się nam okienko zawierające listę kolorów z których się składa obrazek. Jeżeli któryś z nich chcielibyśmy podmienić (np. uczynić wodę bardziej błękitną) wystarczy kliknąć na dany kolor aby otworzyć tryb jego edycji (na obrazku powyżej - dolne okno dialogowe).
Potem zapisujemy paletę, klikając "Save":

Obrazek

Możemy teraz zapisać przetworzony obrazek i przejść do następnego.
Przy drugim obrazku postępujemy dosyć podobnie, z jedną małą różnicą.
Po pojawieniu się okna dialogowego dla opcji "Indexed color", z listy "Palette" wybieramy "Custom":

Obrazek

A następnie, po pokazaniu się kolejnego okna dialogowego klikamy "Load"

Obrazek

Wskazujemy do załadowania paletę, którą przed chwilą stworzyliśmy...

Obrazek

Po jej załadowaniu automatycznie wypełniają się (i przestają być edytowalne) niektóre pola w oknie dialogowym "Indexed Color". Na poniższym obrazku widzimy np., że nie możemy już zmienić ilości kolorów, dla których zostanie stworzony indeks:

Obrazek


I... to wszystko. Po zatwierdzeniu indeksacji, obrazek zostanie przetworzony tak, aby kolorystyka zgadzała się z załadowaną paletą. Zestaw kolorystyczny będzie dokładnie ten sam, jak w obrobionym już wcześniej pliku.

Mapwel, podczas wektoryzacji przygotowanych w ten sposób obrazków, wyłącza możliwość zdefiniowania ilości kolorów.
Zwektoryzowana mapa zawiera plik TYP, na który składają się kolory zdefiniowane podczas wcześniejszej obróbki. Pliki TYP są identyczne dla każdej przygotowanej wg powyższego schematu mapy.
Mapy można następnie dowolnie łączyć w jeden Mapset, nie obawiając się o "dziwne" zachowanie kolorów w pliku wyjściowym.

Świetnie się to sprawdza w przypadku map podobnych graficznie, np. tego samego producenta. Mam kilka wydań elektronicznych Compass'u i z tego co widzę, można by się było pokusić o stworzenie jednego zestawu kolorów dla wszystkich oferowanych przez nich map. Podobnie sławetne "ruskie sztabówki" - jak pisałem wyżej, autorzy BGTopoVJ stwierdzili, że są w stanie dobrać zestaw raptem 16 kolorów wystarczający do rozsądnego przetworzenia kilkuset różnych arkuszy. Sam także korzystam z zaproponowanej przez nich palety.

Przy okazji - ilość kolorów nie ma aż tak dużego znaczenia dla wielkości pliku. O wiele większe znaczenie ma sposób przygotowania pliku wejściowego - jeśli był to skan, to na ile udało się go odszumić oraz usunąć raster. Jeżeli mamy mocno zaszumiony plik, to po zmniejszeniu liczby kolorów uzyskamy jedynie to, że kontrasty między poszczególnymi pikselami będą większe, nie wpłynie to jednak na ilość i wielkość "kwadracików" generowanych w Mapwelu - a to jest właśnie ten czynnik, który wpływa najbardziej na rozmiar pliku wyjściowego.

P.S.
Wielkość mapsetu stworzonego za pomocą Mapwela nie ma znaczenia dla odbiornika. Odświeża się tak samo szybko niezależnie od tego, czy mamy do czynienia z pojedynczym, kilku megabajtowym arkuszem, czy zestawem kilkuset arkuszy, o łącznej wielkości kilku gigabajtów

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 7:43
przez soko
O palecie kolorów i programach graficznych już kiedyś pisaliśmy.
Pytanie na ile to samo robi sam Mapwel.
Ma on komendy: "Save color palette" i " Load color palette". Coś one muszą robić.
Pytanie, kiedy - w którym etapie edycji mapy - ich użyć.
Wydaje się, że "Save" należy użyć, gdy plik graficzny został przejrzany i mamy zestaw kolorów. Można go wtedy zapisać pod nazwą dla danego typu map.
A opcji "Load color palette" powinniśmy chyba użyć zaraz po otwarciu Mapwela a przed wgraniem mapy. Powinna być wtedy obrabiana wg danej palety kolorów.
Jeśliby pliki .typ z kilku tak zrobionych map się nie różniły - oznaczałoby to, że jest to stabilny i pewny sposób tkwiący w samym Mapwelu.
Krzysztof

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 8:14
przez asandrzej
Witam.
Tak jest Objects >User Defined style możemy wybrać z kolekcji lub stworzyć własną.
Jest możliwość importu i eksportu do programów zewnętrznych.
Pozdrawiam.
Edit:
Narzędzia Mapwela przydatne są do definiowania nanoszonych obiektów.
Wczytywanie przygotowanej palety kolorów.

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 8:32
przez kwieto
Nie testowałem rozwiązania "wewnątrzmapwelowego", choć jeśli dobrze pamiętam, mówiłeś że nie sprawdza się ono w 100%.
Zewnętrznej edycji na pewno użyli twórcy BGTopoVJ (ze strony można ściągnąć przygotowane do wektoryzacji Tiff'y, wszystkie są w trybie zindeksowanych kolorów).
A i w pomocy do Mapwela jest mowa o "zewnętrznym" przygotowaniu plików.
Może wczytywanie/zapisywanie palet wprowadzono dopiero w ostatnim wydaniu programu?

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 9:22
przez asandrzej
Twórca program Mapwel zaleca obróbkę rastra programem zewnętrznym.
Użycie zewnętrznego narzędzia do przygotowania „podkładu” ułatwia pracę gwarantując powtarzalność.
Rastry o mniejszej palecie kolorów po przetworzeniu programem Mapwel są bardziej zbliżone jakością do oryginału.
Jeżeli chodzi o uzyskiwaną jakość wizualną to przy wektoryzacji programem Mapowel duże znaczenie ma jakość rastra nie chodzi tylko jakość skanu ale o to jaka mapa została poddana wektoryzacji . Odniosłem wrażenie że mapy wykonane w starszych technikach drukarskich podane tej obróbce ‘ wychodzą lepiej ’.
Pozdrawiam.

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 16:35
przez kwieto
Zrobiłem mały eksperyment - obrobiłem mapę do 16 kolorów (kodyfikacja wg palety BGTopo), następnie zwektoryzowałem Mapwelem i zapisałem paletę barw.
Następnie wczytałem tę samą mapę ale w trybie pełnokolorowym, załadowałem wcześniejszą paletę i rozpocząłem wektoryzację.

Efekty:
1. Pliki TYP obu map są diametralnie różne od siebie.
2. Obie mapy zupełnie inaczej wyglądają w odbiorniku. OK, plik zindeksowany kolorystycznie poddałem pewnej obróbce służącej wygładzeniu i ułatwieniu wektoryzacji (mniejszy plik wyjściowy), jednak różnica jest dość drastyczna.
Poniżej obrazki - po lewej wektoryzacja mapy zindeksowanej, po prawej - pełnokolorowy obrazek obrobiony przy użyciu palety załadowanej w Mapwelu:

ObrazekObrazek

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 17:22
przez soko
kwieto napisał(a):Zrobiłem mały eksperyment - obrobiłem mapę do 16 kolorów (kodyfikacja wg palety BGTopo), następnie zwektoryzowałem Mapwelem i zapisałem paletę barw.
Następnie wczytałem tę samą mapę ale w trybie pełnokolorowym, załadowałem wcześniejszą paletę i rozpocząłem wektoryzację.

Nie upieram się, ale sugeruję najpierw wgranie zapisanej palety barw, a dopiero potem wczytanie mapy i rozpoczęcie wektoryzacji.
Pozdrawiam Krzysztof

Re: Konwersja map rastrowych na format img

PostNapisane: Pn, 24 sie 2009 18:19
przez kwieto
Niestety bez zmian:

Obrazek

Re: Konwersja map rastrowych na format img

PostNapisane: So, 24 paź 2009 14:00
przez jasiekpol
Kurcze, importuje mapkę skalibrowaną w OZi i wektoryzuje bez kalibracji ( bo pod ozim śmiga dobrze) potem włączam odbiornik i pokazuje mi ją na Litwie ;) Co to może być ?

Re: Konwersja map rastrowych na format img

PostNapisane: N, 25 kwi 2010 17:19
przez Agnesblond
Pytanie.
Mam Garmina GPSmap 60 Cx z zakupioną komercyjną mapą topo. Dla mnie nie jest doskonała tak wygląda jakby była samochodowa.
Mam już zeskanowane mapy topograficzne, które interesują mnie.
Po poczytaniu postów o problemach z kolorami doszłam do wniosku, że to najlepiej pierwszy raz zrobię operację na czarno białych.

Mój Garmin widzi tylko kompercyjną topomapę o nazwie: GMAPSUPP.IMG
Reszte mam ściągniętą co prawda z internetu zapisaną na w sytemie np abcdefgh i nie widzi mój Garmin.

Ja nie mogę znaleźć programu takiego aby móc ekspolorować zapisane różne mapy Garmina w jednym katalogu.
Gdy włączam Garmina w urządzeniu otwieram mapy to widzi wiele różnych o różnych nazwach np Olsztyn, GpMapa Topo 2009 ox, wrz 2009: Szczytno, GpMapa Topo 2009 ox, wrz 2009 i na końcu ostatnia: international Marine Point Basemap sty 2001.
Czyli urządzenie widzi 2 mapy jedną całą z 2001 roku... i jedną mapę podzieloną na kilkadziesiąt mniejszych o nazwie Olsztyn, Szczytno.

Ja nie mogę znaleźć programu, który by eksplorować zapisane mapy w pliku .img
Kto pracuje na autocadzie wie, że są różnego rodzaju nakładki, można eksplorować podmieniać pliki, zapisywać gotowe jako nakładki.
Wg mnie mój fabryczny garmin widzi mapę international Marine z 2001 roku oraz kilkadziesiąt innych.
Mam wyszukaną mapę Wielkopolski ma taki sam zapis pliku jak komercyjna o nazwie: GMAPSUPP.IMG
Mam kilkanaście innych map o pliku img, oraz zeskanowanych jako jpg.
Czy jest możliwość zeskanowanych map z formatem jpg tak aby widział mój Garmin GPSmap60Cx z formatem innym niż IMG ?

Jak tak to jak zrobić?
Wgrałam na micro cartę ( operacja trwa kilakanaście sekund zestaw o wielkości 442 MB mapy to jest pliki z formatem IMG.
POMOCY.