Marble/PalaeoMaps

    From KDE TechBase
    Revision as of 20:49, 29 June 2011 by Neverendingo (talk | contribs) (Text replace - "<code>" to "<syntaxhighlight lang="text">")

    Global Palaeogeography

    See

    http://jan.ucc.nau.edu/~rcb7/rect_globe.html

    Download and installation script

    The following bash script downloads, converts and installs all of the 25 paleogeographic maps (completely with icon...). Unfortunately they are all displayed as a seperate map (that is, you'll have 25 more maps afterwards...), and the only way I could figure out to sort them properly were padded numbers (years). Don't know if and how it is possible to present them as different layers in a single theme, or if there is a not hardcoded way to sort map. It also would be nice if marble were somehow able to "shift through time", similiar to the clouds or sun layers. But it's well worth it just like it is now. Quite interesting (600 million years ago the Aussies would have been the only ones with dry feet.)

    <syntaxhighlight lang="text">

    1. !/bin/bash
    2. Depends on: ImageMagick (convert), wget, sed, cut ...

    BASE_DIR="$HOME/.marble/data/maps/earth" BASE_URL="http://jan.ucc.nau.edu/~rcb7" ICON=`mktemp`

    1. Download and convert the icon:

    echo "Downloading and converting icon..." wget -q http://jan.ucc.nau.edu/~rcb7/2globes.jpg -O - |

     convert - -crop 316x316+5+0 -fill black -draw 'rectangle 265,285 316,310' -fuzz 5% -fill black -draw 'color 0,0 floodfill' - | convert -size 136x136 xc:black -draw 'image SrcOver 8,8 120,120 -' $ICON.png
    
    1. Fetch the map listing, map locations and names. Then download the maps, resize
    2. them, place them into the proper directory together with the icon and write
    3. the .dgml file:

    wget -q http://jan.ucc.nau.edu/~rcb7/rect_globe.html -O - |

     sed -n 's:.*HREF="\([^"]*\)">\([^<]*\)<.*:\1\t\2:p' |
       grep -v "present" |
       while read MAP; do
         MAP_FILE=`cut -f1 <<<"$MAP"`
         MAP_NAME=`cut -f2 <<<"$MAP"`
         THEME=`cut -f1 -d"."<<<$MAP_FILE`
         YEARS=`sed 's:^0\?\([1-9]*[0-9][0-9]\).*:\1:'<<<$MAP_FILE`
         YEARS_P=`sed 's:^\s*\([0-9][0-9][0-9]*\).*:\1:'<<<$MAP_FILE`
         echo "Downloading map of \"$MAP_NAME\" period ($YEARS Ma)..."
         mkdir -p $BASE_DIR/$THEME
         cp $ICON.png $BASE_DIR/$THEME/$THEME-preview.png
         wget -q $BASE_URL/$MAP_FILE -O - | 
    

    convert - -resize 1350x675 "$BASE_DIR/$THEME/$MAP_FILE"

         echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    

    <dgml xmlns=\"http://edu.kde.org/marble/dgml/2.0\">

       <document>
           <head>
               <name>$YEARS_P million years ago: $MAP_NAME</name>
               <target>earth</target>
               <theme>$THEME</theme>
               <icon pixmap=\"$THEME-preview.png\"/>
               <visible> true </visible>
    

    <description><![CDATA[This paleographic map shows how earth might have looked $YEARS Million Years ago in the so-called $MAP_NAME period.

    Credits: Dr. Ron Blakey (http://jan.ucc.nau.edu/~rcb7)
    License: unknown]]></description>

               <zoom>
                   <minimum>  1000  </minimum>
                   <maximum>  1250  </maximum>
                   <discrete> false </discrete> 
               </zoom>
           </head>
           <map bgcolor=\"#000000\" labelColor=\"#ffffff\">
               <layer name=\"$THEME\" backend=\"texture\">
                   <texture name=\"${THEME}_data\">
                       <sourcedir format=\"JPG\"> earth/$THEME </sourcedir>
                       <installmap> $MAP_FILE </installmap>
                   </texture>
               </layer>
           </map>
           <settings>
    

    - <group name=\"Places\">

                   <property name=\"places\">
                       <value>true</value>
                       <available>false</available>
                   </property>
                   <property name=\"cities\">
                       <value>false</value>
                       <available>true</available>
                   </property>
                   <property name=\"terrain\">
                       <value>false</value>
                       <available>true</available>
                   </property>
                   <property name=\"otherplaces\">
                       <value>false</value>
                       <available>true</available>
                   </property>
               </group>
    

    - <group name=\"Boundaries\">

                   <property name=\"borders\">
                       <value>false</value>
                       <available>true</available>
                   </property>
                   <property name=\"international-boundaries\">
                       <available>true</available>
                       <value>false</value>
                   </property>
                   <property name=\"state-boundaries\">
                       <available>true</available>
                       <value>false</value>
                   </property>
               </group>
               <group name=\"Water Bodies\">
                   <property name=\"waterbodies\">
                       <available>false</available>
                       <value>true</value>
                   </property>
                   <property name=\"lakes\">
                       <available>false</available>
                       <value>false</value>
                   </property>
                   <property name=\"rivers\">
                       <available>false</available>
                       <value>false</value>
                   </property>
               </group>
               <group name=\"Surface\">
                   <property name=\"ice\">
                       <value>false</value>
                       <available>false</available>
                   </property>
                   <property name=\"relief\">
                       <value>false</value>
                       <available>false</available>
                   </property>
               </group>
               <property name=\"coordinate-grid\">
                   <value>false</value>
                   <available>true</available>
               </property>
               <property name=\"overviewmap\">
                   <value>true</value>
                   <available>true</available>
               </property>
               <property name=\"compass\">
                   <value>true</value>
                   <available>true</available>
               </property>
               <property name=\"scalebar\">
                   <value>true</value>
                   <available>true</available>
               </property>
           </settings>
           <legend>
               <section name=\"terrain\" checkable=\"true\" connect=\"terrain\" spacing=\"12\">
                   <heading>Terrain</heading>
                   <item name=\"mountain\">
                       <icon pixmap=\"bitmaps/mountain_1.png\"/>
                       <text>Mountain</text>
                   </item>
                   <item name=\"volcano\">
                       <icon pixmap=\"bitmaps/volcano_1.png\"/>
                       <text>Volcano</text>
                   </item>
               </section>
               <section name=\"otherplaces\" checkable=\"true\" connect=\"otherplaces\" spacing=\"12\">
                   <heading>Places of Interest</heading>
                   <item name=\"geographic-pole\">
                       <icon pixmap=\"bitmaps/pole_1.png\"/>
                       <text>Geographic Pole</text>
                   </item>
                   <item name=\"magnetic-pole\">
                       <icon pixmap=\"bitmaps/pole_2.png\"/>
                       <text>Magnetic Pole</text>
                   </item>
                   <item name=\"airport\">
                       <icon pixmap=\"bitmaps/airport.png\"/>
                       <text>Airport</text>
                   </item>
                   <item name=\"shipwreck\">
                       <icon pixmap=\"bitmaps/shipwreck.png\"/>
                       <text>Shipwreck</text>
                   </item>
               </section>
               <section name=\"surface\" checkable=\"false\" spacing=\"12\">
                   <heading>Surface</heading>
                   <item name=\"populated-places\">
                       <icon pixmap=\"maps/earth/citylights/legend/city.png\"/>
                       <text>Populated Places</text>
                   </item>
                   <item name=\"light-terrain\">
                       <icon pixmap=\"maps/earth/citylights/legend/lightterrain.png\"/>
                       <text>Light terrain</text>
                   </item>
                   <item name=\"dark-terrain\">
                       <icon pixmap=\"maps/earth/citylights/legend/darkterrain.png\"/>
                       <text>Dark terrain</text>
                   </item>
                   <item name=\"water\">
                       <icon pixmap=\"maps/earth/citylights/legend/water.png\"/>
                       <text>Water</text>
                   </item>
               </section>
               <section name=\"coordinate-grid\" checkable=\"true\" connect=\"coordinate-grid\" spacing=\"12\">
                   <heading>Coordinate Grid</heading>
               </section>
           </legend>
       </document>
    

    </dgml>" > $BASE_DIR/$THEME/$THEME.dgml

       done
    

    <syntaxhighlight lang="text">