SUMO從openStreetMap下載地圖運行仿真連接NS2(代碼)

1.正確安裝sumo功戚,我這里使用的是sumo-0.32.0版本落包,查看sumo版本的命令是sumo。

sumo

2.取openStreetMap下載osm地圖文件

2.png

3.選好大致區(qū)域后径玖,點擊導(dǎo)出按鈕扬卷,然后點擊手動選擇不同區(qū)域,確定選擇的區(qū)域辆毡。選擇好區(qū)域后點擊導(dǎo)出按鈕菜秦,瀏覽器自動下載osm文件
4.png

4.將下載好的osm拷貝到一個新的目錄中,我這里給osm文件重命名為sanTaiZi.osm舶掖。然后從命令行cd進這個目錄并執(zhí)行如下命令 球昨,使用工具netconvert根據(jù)osm文件轉(zhuǎn)化出sumo使用的路網(wǎng)文件。出現(xiàn)警告不要緊眨攘,有下面的success就好主慰。

netconvert --osm-files sanTaiZi.osm -o sanTaiZi.net.xml 
5.png

5.cd進sumo的主目錄嚣州,即環(huán)境變量里配置的SUMO_HOME里面,然后再cd進入data/typemap目錄里共螺,把這里面的osmPolyconvert.typ.xml復(fù)制到之前存放osm文件的位置该肴。


6.png

6.cd到存放osm文件的目錄。使用下面的命令藐不,生成.poly.xml文件匀哄,注意把相應(yīng)的文件名換成你自己的文件名,后綴保持一致雏蛮。

polyconvert --osm-files sanTaiZi.osm --net-file sanTaiZi.net.xml --type-file osmPolyconvert.typ.xml -o sanTaiZi.poly.xml
7.png

7.使用sumo帶的工具生成.rou.xml文件涎嚼,命令如下:

python /home/lzx/Downloads/sumo-0.32.0/tools/randomTrips.py -n sanTaiZi.net.xml -r sanTaiZi.rou.xml -e 50 -l
8.png

8.編寫sumo的配置文件,注意更換<input>標簽內(nèi)部的三個文件名

<configuration>
<input>
    <net-file value="sanTaiZi.net.xml"/>
    <route-files value="sanTaiZi.rou.xml"/>
    <additional-files value="sanTaiZi.poly.xml"/>
</input>
<time>
<begin value="0"/>
<end value="100"/>
<step-length value="0.1"/>
</time>
</configuration>

9.在終端使用下面的命令運行sumo-gui仿真挑秉。延遲調(diào)在100到200之間法梯,效果比較好。

sumo-gui sanTaiZi.sumocfg
9.png

10.使用下面的命令犀概,生成連接NS2用的配置文件立哑。

sumo -c sanTaiZi.sumocfg --fcd-output sanTaiZi.sumo.xml

11.使用下面的命令生成ns2仿真用的腳本文件,注意sumo的根目錄換成自己的姻灶。

python ~/Downloads/sumo-0.32.0/tools/traceExporter.py --fcd-input sanTaiZi.sumo.xml --ns2config-output sanTaiZi.tcl --ns2mobility-output mobility.tcl --ns2activity-output activity.tcl

12.cd進ns2的根目錄刁憋,/home/lzx/Documents/ns-allinone-2.35/ns-2.35/tcl/ex,然后進入ex目錄木蹬,用文本編輯器
打開simple-wireless.tcl文件,復(fù)制里面的代碼到sanTaiZi.tcl里面若皱,即上一步生成的腳本文件镊叁。


10.png

11.png

13.修改腳本文件

  • 刪除opt(min-x),opt(min-y)
  • val(rp)屬性改成AODV
  • 刪除opt(start)和opt(stop)
  • 刪除這兩行
set opt(mf) $opt(config-path)
append opt(mf) /mobility.tcl
  • 把val(nn)的值改成opt(nn)的值
  • 刪除這兩行
set opt(af) $opt(config-path)
append opt(af) /activity.tcl
  • 更改.tr文件名走触,方便以后的數(shù)據(jù)分析
  • 添加nam文件
set namf [open sanTaiZi.nam w]
$ns_ namtrace-all-wireless $namf $opt(x) $opt(y)
  • 給ope(x)和opt(y)向上取整晦譬,例如4942.85改為4943
  • 把$topo load_flatgrid 500 500改成$topo load_flatgrid $opt(x) $opt(y)
  • 把-movementTrace OFF改成-movementTrace ON
  • 在第一個for循環(huán)里添加$ns_ initial_node_pos $node_($i) 20
  • 刪掉對node(1)和node(0)位置設(shè)置的代碼和set tcp上面的代碼,添加source mobility.tcl
  • $ns_ attach-agent node_(1) $sink改成$ns_ attach-agent $node_(22) $sink
  • 把下面的150都改成100
    14.保存退出互广,使用下面的命令運行ns2仿真
ns sanTaiZi.tcl
12.png

15.使用下面的命令運行ns2仿真界面

nam sanTaiZi.nam

完整的ns2腳本代碼

set val(chan)           Channel/WirelessChannel    ;# channel type
set val(prop)           Propagation/TwoRayGround   ;# radio-propagation model
set val(netif)          Phy/WirelessPhy            ;# network interface type
set val(mac)            Mac/802_11                 ;# MAC type
set val(ifq)            Queue/DropTail/PriQueue    ;# interface queue type
set val(ll)             LL                         ;# link layer type
set val(ant)            Antenna/OmniAntenna        ;# antenna model
set val(ifqlen)         50                         ;# max packet in ifq
set val(nn)             45                          ;# number of mobilenodes
set val(rp)             AODV                       ;# routing protocol
set opt(x) 4943
set opt(y) 21754
# ======================================================================
# Main Program
# ======================================================================
set ns_     [new Simulator]
set tracefd     [open sanTaiZi.tr w]
$ns_ trace-all $tracefd

set namf [open sanTaiZi.nam w]
$ns_ namtrace-all-wireless $namf $opt(x) $opt(y)

# set up topography object
set topo       [new Topography]

$topo load_flatgrid $opt(x) $opt(y)

#
# Create God
#
create-god $val(nn)

#
#  Create the specified number of mobilenodes [$val(nn)] and "attach" them
#  to the channel. 
#  Here two nodes are created : node(0) and node(1)

# configure node

        $ns_ node-config -adhocRouting $val(rp) \
             -llType $val(ll) \
             -macType $val(mac) \
             -ifqType $val(ifq) \
             -ifqLen $val(ifqlen) \
             -antType $val(ant) \
             -propType $val(prop) \
             -phyType $val(netif) \
             -channelType $val(chan) \
             -topoInstance $topo \
             -agentTrace ON \
             -routerTrace ON \
             -macTrace OFF \
             -movementTrace ON          
             
    for {set i 0} {$i < $val(nn) } {incr i} {
        set node_($i) [$ns_ node]   
        $node_($i) random-motion 0      ;# disable random motion
        $ns_ initial_node_pos $node_($i) 20
    }


source mobility.tcl

set tcp [new Agent/TCP]
$tcp set class_ 2
set sink [new Agent/TCPSink]
$ns_ attach-agent $node_(0) $tcp
$ns_ attach-agent $node_(22) $sink
$ns_ connect $tcp $sink
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ns_ at 10.0 "$ftp start" 

#
# Tell nodes when the simulation ends
#
for {set i 0} {$i < $val(nn) } {incr i} {
    $ns_ at 100.0 "$node_($i) reset";
}
$ns_ at 100.0 "stop"
$ns_ at 100.01 "puts \"NS EXITING...\" ; $ns_ halt"
proc stop {} {
    global ns_ tracefd
    $ns_ flush-trace
    close $tracefd
}

puts "Starting Simulation..."
$ns_ run
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敛腌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子惫皱,更是在濱河造成了極大的恐慌像樊,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旅敷,死亡現(xiàn)場離奇詭異生棍,居然都是意外死亡,警方通過查閱死者的電腦和手機媳谁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門涂滴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來友酱,“玉大人,你說我怎么就攤上這事柔纵〉奚迹” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵搁料,是天一觀的道長或详。 經(jīng)常有香客問我,道長加缘,這世上最難降的妖魔是什么鸭叙? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮拣宏,結(jié)果婚禮上沈贝,老公的妹妹穿的比我還像新娘。我一直安慰自己勋乾,他們只是感情好宋下,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辑莫,像睡著了一般学歧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上各吨,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天枝笨,我揣著相機與錄音,去河邊找鬼揭蜒。 笑死横浑,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的屉更。 我是一名探鬼主播徙融,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瑰谜!你這毒婦竟也來了欺冀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤萨脑,失蹤者是張志新(化名)和其女友劉穎隐轩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渤早,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡龙助,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片提鸟。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡军援,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出称勋,到底是詐尸還是另有隱情胸哥,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布赡鲜,位于F島的核電站空厌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏银酬。R本人自食惡果不足惜嘲更,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揩瞪。 院中可真熱鬧赋朦,春花似錦、人聲如沸李破。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗤攻。三九已至毛嫉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間妇菱,已是汗流浹背承粤。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闯团,地道東北人密任。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像偷俭,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缰盏,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • feisky云計算涌萤、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,843評論 0 5
  • 一、Python簡介和環(huán)境搭建以及pip的安裝 4課時實驗課主要內(nèi)容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,744評論 0 10
  • 專業(yè)考題類型管理運行工作負責人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 8,985評論 0 13
  • 你收到來自神靈的通知嗎口猜? 很多時候神靈就在身邊负溪,他們總是在預(yù)言后,悄悄給你提示济炎。 所以一定要記得注意觀察哦 侯馬夫...
    神奇小逗閱讀 1,036評論 0 0
  • LGD123閱讀 242評論 0 2