Ps.out Making maps: Difference between revisions
⚠️Ejtizado (talk | contribs) |
⚠️Ejtizado (talk | contribs) |
||
| Line 95: | Line 95: | ||
== | == Composing the map == | ||
The '''raster file''' is a frequent element and, for the moment, it is necessary to mask vector maps. Here I use a shaded raster to make the aspect of 3D in this simple how to. | |||
The output in console show me that the equivalent quality is 93 ppi. Changing the resolution with ''[[g.region]] res=10'' you can add pixels to slowup the printing quality (if you raster have the request resolution!). | |||
raster bz_30m_shade | |||
end | |||
== Decorations == | == Decorations == | ||
Revision as of 20:56, 19 October 2010
How make a map?
The header of file
#!/bin/bash
Command line
First I define a variable to store the name of the output because when I want change it I modify only this value. Also, begin the ps.out command and the EOF block.
OUTPUT="OUT" ps.out -g out=$OUTPUT.ps << EOF
The layout
The paper
paper A4
left 1in
landscape y
font
name Univers
size 9
end
draw
color black ~ linewidth .8mm
moveto 23cm 1.5cm ~ fcolor 220:220:220 ~ rect 29cm 19cm
moveto 23cm 1.5cm ~ fcolor 100:100:100 ~ rect 29cm 4cm
font Univers-Bold 14 extend 2 ~ color white
moveto 26cm 2.25cm ~ text :Making|.maps with|ps.out
end
end
Placing the map area on the page
I prefer use the default values of the map area but to show anything I set the color of the border map.
maparea color white end
I request a fixed scale for the map.
scale 1:100000
Elements on the map
The border of the map is a usual elements to geographically locate the map. There is not a default border then if you want it you need define this stament.
grid
format iho
major 10000
width .1mm
color indigo$.25
end
minor 5000
color none
end
end
The scalebar is also an usual elements.
scalebar S
units km Km
length 5
major 5 1
minor 0 5
frame
where 26cm 17cm
ref center center
border 0
fcolor none
end
height 3mm
end
The numeric scale is also usefull. As you can see, I request a scale 1:100000 but with the actual margins and border the minimun scale is 1:110249.
note :scale escala
frame
where 26cm 17cm
ref center upper
border 0
margin 10
fcolor none
end
end
First output
At this moment this is the output:

Composing the map
The raster file is a frequent element and, for the moment, it is necessary to mask vector maps. Here I use a shaded raster to make the aspect of 3D in this simple how to.
The output in console show me that the equivalent quality is 93 ppi. Changing the resolution with g.region res=10 you can add pixels to slowup the printing quality (if you raster have the request resolution!).
raster bz_30m_shade end
Decorations
Now, I finish the EOF stament.
EOF
I prefer work with PDF than PS because I see the transparent colours and it compress the file resulting in a considerably smalles file size.
ps2pdf14 $OUTPUT.ps
Maps with same layout
To make several maps with the same layout, we use three files: map_pre, map_post, and a master file. Also we need the map_# with the particular content of the map.
The master file, to repeat the creation of all maps with the same layout, is as:
#!/bin/bash
MAP=map_ps
function makemap()
{
echo "#!/bin/bash" > $MAP
cat map_pre >> $MAP
cat $1 >> $MAP
cat map_post >> $MAP
chmod +x $MAP
./$MAP $1
rm $MAP
}
makemap map_1
makemap map_2
The file map_pre include all code to execute ps.out and design the basic elements of the map: title, graticule, scalebar, north-arrow, etc. A example content is:
OUTPUT=$1
ps.out -g out=$OUTPUT.ps << EOF
paper A4
left 2cm
top 2cm
landscape y
draw
color 70:70:70
linewidth .4mm
rect 22cm 2cm 28cm 19cm 240:240:240
color black
font OffensiveBold 10 .8
text 25cm 6cm "MAIN TITLE"
end
end
scale 1:500000
grid
format iho
trim -1
major 50000
width .18mm
color none
end
minor 25000
width .18mm
color none
style 2
end
subminor 5
font
name Univers
size 10
color black
end
fcolor black
end
vlines bz_lim
type boundary
label Límite del Bierzo
lpos -1
line
width .3mm
color black
end
end
The file map_post include the final ending code, and perhaps the common legend style. For example,
vlegend Legend
frame
where 25cm 12cm
ref center center
offset 0 0
border .3mm
fcolor white
margin 12
end
title
name Univers-Bold
size 10
extend 1.25
end
font
name Univers
size 9
end
end
EOF
echo "GO Go go: $OUTPUT.pdf"
ps2pdf14 $OUTPUT.ps
The file map_# include the specific code to draw the particular maps. For example,
vareas risk_range
label Probabilidad de infección
legend 0
line
width .01mm
color none
style 1
end
fcolor GRASSRGB$.7 cat
masked y
setrule 1 Muy baja
setrule 2 Baja
setrule 3 Media
setrule 4 Alta
setrule 5 Muy alta
end
vpoint cs_parcela
label Intensidad de ataque
where ch_pr > 0
symbol basic/circle
line
width .1mm
color black
end
fcolor white$.3
size ch_prx 8
scale 5 2
masked y
end