Nie jest tak latwo, format dla garmina (ten ktory uzywaja w UMP) jest dosyc prymitywny i nasz programik txt2ump probuje wielu rzeczy sie domyslac, laczyc ze soba obiekty w jedna calosc, nawet jesli sa zapisane w roznych plikach wejsciowych itd.
Oprocz nodes i ways masz jeszcze relacje, ktorych czlonkami moga byc nodes i ways. Dopiero jak ways i relations zostana przetworzone to wtedy mozesz wywalic z pamieci nodes.
Oczywiscie mozna wymyslic najrozniejsze sztuczki zeby zmniejszyc zuzycie pamieci, zwykle kosztem wydajnosci, ale chyba szkoda czasu na zastanawianie sie.
Wyjasnij do czego Ci ten plik ze wszystkimi danymi, napewno mozna to latwiej zrobic.
Ja uruchamiam txt2osm na 64 bitach i potrzebowalbym okolo 5-6GB ramu (tak jak juz mowilem wczesciej) zeby zaladowac wszystko, wiec z 4GB mozesz nie probowac. Na 32-bitach roznica jest nie taka duza (moja szkola ma komputer z 52GB ramu ale 32-bitowy i tez nie poszlo na nim - trzeba by zamiast struktur pythona uzywac pliku na jakims ramdysku - wtedy mozna by bylo spokojnie zaadresowac cale 50GB)
Spojrz sobie na skrypt osm-merge, mozesz w ten sam sposob zmergowac wszystkie pliki .osm z openstreetmap.pl/ump/ ale na ich granicach drogi nie zostana polaczone. (ten skrypt robi dokladnie to co opisales powyzej)