#!/bin/bash
stop=1
#####################################################
# #
# Collecting information #
# #
#####################################################
echo 'Set the node-edge file name without extensions:'
read filename
echo "Filename set:$filename"
echo "Set map size "
echo "Set column(x):"
read x
echo "Set row(y):"
read y
echo "Set the length of raod"
read length
#####################################################
# #
# Producing road network #
# #
#####################################################
echo "<nodes>" > $filename".nod.xml"
echo "<edges>" > $filename".edg.xml"
echo "<edges>" > $filename".side.edg"
node=0
edge=0
side=0
for((i=0;i<y;i++))
do
for((j=0;j<x;j++))
do
if test $i -eq 0 && test $j -lt $((x-1));then
type='priority a'
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+1))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+1))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+1))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$((node+1))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
if test $j -eq 0;then
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
else
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
fi
edge=$((edge+1))
if test $j -eq 0;then
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
else
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
fi
edge=$((edge+1))
elif test $i -eq $((y-1)) && test $j -lt $((x-1));then
type='priority b'
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+1))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+1))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+1))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$((node+1))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
elif test $j -eq 0 && test $i -lt $((y-1));then
type='priority c'
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+1))'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+1))'" to="node'$node'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
elif test $j -eq $((x-1)) && test $i -lt $((y-1));then
type='priority d'
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".edg.xml"
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="2" speed="13.88" />' >> $filename".side.edg"
edge=$((edge+1))
elif test $i -eq $((y-1)) && test $j -eq $((x-1));then
type='priority e'
else
type='traffic_light'
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+1))'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+1))'" to="node'$node'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$node'" to="node'$((node+x))'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
edge=$((edge+1))
echo '<edge id="edge'$edge'" from="node'$((node+x))'" to="node'$node'" priority="75" numLanes="1" speed="13.88" />' >> $filename".edg.xml"
edge=$((edge+1))
fi
echo '<node id="node'$node'" x="'$((j*length+5))'" y="'$((i*length+5))'" type="'$type'" />' >> $filename".nod.xml"
node=$((node+1))
done
done
#done
echo "</nodes>" >> $filename".nod.xml"
echo "</edges>" >> $filename".edg.xml"
echo "</edges>" >> $filename".side.edg"
echo "$filename.nod.xml $filename.edg.xml SAVED!"
#####################################################
# #
# Convert to net.xml #
# #
#####################################################
echo "Convert to net.xml"
netconvert -e $filename".edg.xml" -n $filename".nod.xml" -o $filename".tmp" -v --offset.disable-normalization
echo "Correcting Traffice light phase"
sed -f erase_tls.sed $filename.tmp > $filename.net.xml
rm $filename.tmp
echo $filename".net.xml SAVED!"
netconvert -e $filename".side.edg" -n $filename".nod.xml" -o $filename".side.net" --offset.disable-normalization
#####################################################
# #
# Create trip file #
# #
#####################################################
echo "Set the simulation time(in second)"
read endtime
echo "Simulate from 0s to "$endtime"s."
echo "Create trip file"
~/Dropbox/Graduation/NS2Simulation/sumo-0.13.0/tools/trip/randomTrips.py -n $filename".side.net" -o $filename".trip.xml" -s 19 -b 0 -e $endtime
duarouter -n $filename".net.xml" -t $filename".trip.xml" -o $filename".rou.xml" -v
echo "Create sumo.tr"
sumo -v -n $filename".net.xml" -r $filename".rou.xml" --netstate-dump $filename".sumo.tr" --vehroute-output $filename".vrou.xml" -b 1 -e $endtime
echo "Set the intensity of viehicles:"
read p
echo "Create mobility tcl file"
java -jar ~/Dropbox/Graduation/NS2Simulation/sumo-0.13.0/tools/traceExporter/traceExporter.jar ns2 -n $filename".net.xml" -t $filename".sumo.tr" -a $filename".act.tcl" -m $filename".mob.tcl" -c $filename".cfg.tcl" -b 1 -e $endtime -p $p
~/Dropbox/Graduation/NS2Simulation/sumo-0.13.0/tools/route/routecheck.py -n $filename".net.xml" $filename".rou.xml" -v
mkdir $filename/
mv $filename.* $filename/
# mv $filename.*.tcl $filename.net.xml $filename.side.net $filename/
# rm $filename.*
2011年12月1日 星期四
node.sh
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言