سبد خرید
0

هیچ محصولی در سبد خرید نیست.

آموزش شبیه ساز سیستم حمل و نقل شهری شهری SUMO

آموزش شبیه ساز سیستم حمل و نقل شهری شهری SUMO

Sumo : شبیه ساز متحرک شهری شامل پکیجی است که نرم افزار های زیر را دارد :

Sumo: یک شبیه ساز در ابعاد میکروسکوپی بدون بصری سازی ، برنامه خط فرمان .

Sumo-GUI : یک شبیه ساز گرافیکی – در ابعاد میکروسکوپی با رابط گررافیکی کاربر.

NETCONVERT : وارد کننده و تولید کننده شبکه ؛ نقشه شبکه را از فرمتهای متفاوت خوانده و آنها را به فرمت Sumo تبدیل می کند .

NETGENERATE : تولید شبکه های انتزاعی برای شبیه ساز sumo .

DUAROUTER : محاسبه سریعترین راهها در بین شبکه ، وارد کردن انواع مختلف شرح تقاضا . اجرای DUA .

JTRROUTER : محاسبه راهها با استفاده از درصدهای عطف نقاط اتصال .

DFRROUTER : مسیر خودروهایی که ممکن است توسط Sumo استفاده شود را محاسبه می کند .

OD2TRIPS: تجزیه ماتریس های OID به وسایل نقلیه جاده ای تنها .

POLyCONVERT : وارد کردن نقاط مهم و چند ضلعی از فرمتهای متفاوت و ترجمه اینها داخل یک فایلی که شاید توسط GSUMO-GUI گرافیکی شود . ( وارد کردن اشکال هندسی از منابع متفاوت و تبدیل آنها به بازشمایی که ممکن است با استفاده از SUMO-GUI بصورت گرافیکی تبدیل گردد . )

ACTIVITYGEN : تولید تقاضا بر پایه خواسته های سیار جمعیت مدل شده .

Additional tools : این ابزار برای نوشتن برنامه های بزرگ ضرورت ندارد ، راه حل های زیادی برای مشکلات متفاوت ممکن است توسط این ابزار پوشانده شود .

علاوه بر این برنامه های کاربردی پشتیبانی نشده هم شامل :

TraCI4J : یک رابط جاوا ( java ) برای اتصال و گسترش اطلاعات از طریق TRACI .

Contributed / Sumo traffic modeler : نرم افزار مبتنی بر java برای تولید یک تقاضا بر پایه خواسته های تحرک .

افراد متعددی در طول کار با SUMO این شبیه ساز را گسترش داده اند . اگر نسخه های آن شامل ورژن نیستند چون اغلب آزمایش نشده و ممکن است منسوخ شده باشند .

  1. EWORLD ( نرم افزاری برای تبدیل و غنی کردن جاده ها در شبکه )
  2. VEINS ( اتصال دهنده SUMO به OMNET++ )
  3. TRANS ( اتصال دهنده SUMO به NS-2 )
  4. MOVE ( اتصال دهنده SUMO به NS-2 )
  5. VSIMRTI ( اتصال دهنده SUMO به OMNET++ JIST و SWANS )

علاوه بر این نرم افزارها ی – منبع بسته – دیگری هم وجود دارد که موجود هستند و ممکن است در برنامه شما استفاده گردند .

NETEDIT : یک ویرایشگر گرافیکی شبکه . هر کاری که NETCINVERT بتواند انجام دهد را بهتری انجام می دهد .

MESO شبیه سازی که با استفاده از یک مدل صف میکروسکوپی انجام شبیه سازها را تا 100 برابر سریعتر می کند .

عكس 1.jpg

1.1.1: هدف از این آموزش در بخش اول آشنایی کاربران است که برای اولین بار با sumo کار می کنند . در sumo یک شبکه خیابانی متشکل از گره ها ( اتصالات یا محل استقرار ) و لبه ها ( محل تقاطع خیابانها ) است . از این رو اگر ما بخواهیم یک شبکه با دو خیابان داشته باشیم احتیاج به سه گره و دو لبه داریم . در بخش مسیرها خواهیم دید که چرا ساده ترین شبکه هم نمی تواند شامل تنها یک لبه باشد .

2.1.1.: تمامی گره ها دارای موقعیت بوده و هر کدام شماره شناسایی یکتایی دارند . از این رو فایل ساده گره ها بشرح زیر خواهد بود :

<nodes>

<node id=”1″ x=”-500.0″ y=”0.0″ />

<node id=”2″ x=”+500.0″ y=”0.0″ />

<node id=”3″ x=”+501.0″ y=”0.0″ />

</node>

شما می توانید در یک ویرایشگر متنی این کد را با نام خاصی مثلا hello.nod.xml ذخیره کنید . توجه داشته باشید که پسوند .nod.xml برای گره ها بصورت پیش فرض تعریف شده است .

3.1.1: اکنون ما باید گره ها را با لبه ها اتصال دهیم . این خیلی آسان به نظر می رسد . ما یک id گره منبع ، یک id گره هدف و یک id لبه برای مراجعات بعدی داریم . لبه ها هدایت شده هستند ، از این رو هر خودرو در این لبه از گره from حرکت کرده و در پایان به گره to منتهی می شود .

<edges >

<edge from=”1″ id=”1to2″ to=”2″ />

<edge from=”2″ id=”out” to=”3″ />

</edges>

این داده ها را داخل فایلی با نام hello.edg.xml ذخیره کنید .

حالا که گره ها و لبه ها را تعریف کرده ایم می توانیم اولین ابزار sumo را برای ساخت شبکه فراخوانی کنیم . مطمئن شوید netconvert از هر جایی در سیستم شما فراخوانی می شود . (path)

در این مرحله به پوشه ای که فایل های گره و لبه را ذخیره کرده ایم می رویم ، البته با cmd و بصورت دستوری . برای این کار برنامه cmd.exe را اجرا می کنیم و به مسیر مورد نظر می رویم (start runcmd ) ، سپس دستور زیر را وارد می کنیم .

Netconvert –node-files=hello.nod.xml –edge-files=hello.edg.xml –output-file=hello.net.xml

این دستور شبکه ی ما را با نام hello.net.xml تولید خواهد کرد .

4.1.1:اکنون ما یک شبکه داریم ، حالا ما نیاز به خودرو داریم . در sumo خودروها دارای انواع مختلف پارامترهایی از قبیل :

طول خودرو ، شتاب ، ترمز و حداکثر سرعت می باشد . علاوه بر آن نیاز به یک پارامتر به نام سیگما دارد که برخی از رفتارهای تصادفی را معرفی می کند . و با توجه به نوع خودرو و مورد استفاده می باشد . تنظیم این پارامتر بر روی 0.0 یک خودروی قطعی ( بدون رفتارهای تصادفی ) ارائه می دهد .

حال ما برای این خودرو یک مسیر تعریف می کنیم که شامل دو لبه می باشد . دلیل اینکه از دو لبه استفاده می شود این است که موقعیت خودرو بر اساس موقعیت جلوی آن مشخص می شود . در پایان مشخصات خودرو را نوشته و فایل را با عنوان hello.rou.xml ذخیره می کنیم .

Accel : توانایی شتاب خودرو بر حسب (m/) – float

Decal : توانایی کاهش سرعت خودرو بر حسب (m/) – float

Id: شناسه یکتا – string

Length: طول خورو بر حسب متر ( پیش فرض 5 متر ) – float

Max speed : حداکثر سرعت خودرو بر حسب (m/s) پیش فرض m/s 70.0 – float

Depart: مرحله ی زمانی که خودرو می خواهد وارد شبکه شود – float (S)

<routes >

<vType accel=”1.0″ decel=”5.0″ id=”Car” length=”5.0″ minGap=”2.0″ maxSpeed=”50.0″ sigma=”0″ />

<route id=”route0″ edges=”1to2 out” />

<vehicle depart=”1″ id=”veh0″ route=”route0″ type=”Car” />

</routes>

این نوشته را در فایلی به نام hello.rou.xml ذخیره می کنیم .

5.1.1:اینک ما با پیوند زدن تمامی فایل هایی که ایجاد کرده ایم تمامی آنها را داخل یک فایل پیکربندی ذخیره می کنیم .

<configuration >

<input>

<net-file value=”hello.net.xml”/>

<route-files value=”hello.rou.xml”/>

</input>

<time>

<begin value=”0″/>

<end value=”10000″/>

</time>

</configuration>

با ذخیره کردن این دستورات در فایلی با نام hello.sumo.cfg را می توانیم شبیه سازی را با هر دو دستور

Sumo -c hello.sumo.cfg

یا با GUI توسط

Sumo-gui -c hello.sumo.cfg

انجام دهیم .

عكس 2.jpg

1.2.1: در این مثال موقعیت ترافیکی با نرم افزارهای sumo تجزیه تحلیل خواهد شد . در این مثال شبکه دارای 4 ورودی ( منبع ) 4 مقصد و همچنین دو تقاطع بدون چراغ راهنمایی می باشد . در منطقه مورد مطالعه هر مسیر برای ترافیک خروجی دارای 3 لاین بوده و جابجایی ها در هر لاین محدود است .

رفتارهای خودسرانه u-turn در تمام نقاط ممنوع است ، علاوه بر این اولویت بالاتری برای ترافیک مسیرهای غربی و شرقی در نظر گرفته شده است . برای ترافک تقاضا شده 4 نوع از خودروها در این مثال وجود دارد ( خودروهای A ، B ، C و D ) تمامی رانندگان دارای 50% مهارت رانندگی هستند . اطلاعات مربوط در جدول زیر 1.2.1 ذکر شده است .

جدول 1.1:

MAX speed (m/s) Length (m) Max deceleration(m/s) Max acceleration(m/s) Vehicle type
50.0 5.0 6.0 3.0 Car A
50.0 7.5 6.0 2.0 Car B
40.0 5.0 5.0 1.0 Car C
30.0 7.5 5.0 1.0 Car D

2.2.1: قبل از انجام تجزیه و تحلیل ترافیک در SUMO مثال شبکه در شکل قبل باید به شبکه های متنی بر گره / لینک تبدیل شود

که در شکل بالا نشان داده شده است .

جدول زیر مقادیر مختصات برای مثال شبکه را ذکر کرده است .

Y-coordinate X-coordinate Node name
+1000.0 -1000.0 91
0.0 -1000.0 92
0.0 +3000.0 93
+1000.0 +3000.0 94
+1000.0 -500.0 911
0.0 -500.0 912
0.0 +2500.0 913
+1000.0 +2500.0 914
+1000.0 0.0 1
0.0 0.0 2

جدول 2.1

جد

0.0 +1000.0 3
0.0 +2000.0 4
+1000.0 +2000.0 5
+1000.0 +1000.0 6

بطور کلی ، ما باید اطلاعات داده شده را درون 3 فایل تبدیل کنیم که در sumo به عنوان فایلهای ورودی قابل خواندن باشد . دو تا از فایل ها شامل اطلاعات شبکه است که در اصل تبدیل به اطلاعات گره و لینک در sumo شده که معمولا .nod.xml و .edg.xml نامیده می شوند . فایل شامل ترافیک مورد تقاضا و اطلاعات مسیر به نام .rou.xml ذخیره خواهد شد . علاوه بر این در فایل با پسوندهای .con.xml و .typ.xml در صورت جابجایی ترافیکی و اتصال تقاطع ها و لینک ها مورد نیاز است .

یک دید کلی و اجمالی از فایل های ورودی مورد نیاز برای مثال خودمان را در شکل زیر مشاهده خواهید کرد .

ax5.JPG

* داده ی هندسی لینک همچنین می تواند در فایل لینک ذخیره گردد . sample.edg.xml

** این فایل اختیاری است و اگر داده نشده است اتصالات لاین و جابجایی و تحرک ترافیک بصورت پیش فرض تولید می شود .

1.1.2.2.1: node

بر اساس جدول مختصات بالای صفحه و شکل گره ها و لینک های صفحه قبل تقاطع ها ، ورودی ها و مقصدها به ترتیب کدگذاری شده و گره های 6-1 و 94-91 طبق جدول مختصاتشان در فایل .nod.xml ذخیره می شوند . با توجه به تغییر تعداد لاین های گره های 4 ، 2 ، 1 و 5 نیازها به اضافه شدن داشتند ، اگر چه هیچ تقاطعی مربوط به اینها وجود ندارد .

گره های مجازی 914 و 911 برای تجزیه و تحلیل عملکرد ترافیک بر روی لینک های ورودی و خروجی در شبکه مورد نیاز است . در صورت نیاز گره های ساختگی بیشتری می توانند اضافه شوند . در مواردی مانند تراز دقیق هندسی و یا برای مشخصات مکان آشکار سازها . تعریف ویژگی گره ها در زیر آمده است .

  1. id : نام شناسه يكتاي گره ، توسط كاربرد و با رشته ، اعداد يا هر دو تعريف مي گردد .
  2. X : موقعيت گره بر حسب محور Xها را تعريف مي كند . ( بر حسب متر )
  3. Y : موقعيت گره بر حسب محور Yها را تعريف مي كند . ( بر حسب متر )
  4. Type : نوع سيگنال كنترل گره را تعريف مي كند . اين ويژگي اختياري بوده و با اولويت و چراغ ترافيكي براي تقاطع هاي بدون چراغ ترافيكي و تقاطع هاي با چراغ ترافيكي با ترتيب اولويت .

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<nodes xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”http://sumo.sf.net/xsd/nodes_file.xsd“>

<node id=”91” x=”-1000.0” y=”1000.0” />

<node id=”92” x=”-1000.0” y=”0.0” />

<node id=”93” x=”3000.0” y=”0.0” />

مثال 1-1 :

ساختار فايل گره ها در مثال خودمان (quickstart.nod.xml)

<node id=”94” x=”+3000.0” y=”+1000.0” />

<node id=”911” x=”-500.0” y=”+1000.0” />

<node id=”912” x=”-500.0” y=”0.0” />

<node id=”913” x=”+2500.0” y=”0.0” />

<node id=”914” x=”2500.0” y=”+1000.0” />

<node id=”1” x=”0.0” y=”+1000.0” />

<node id=”2” x=”0.0” y=”0.0” />

<node id=”3” x=”+1000.0” y=”0.0” />

<node id=”4” x=”+2000.0” y=”0.0” />

<node id=”5” x=”+2000.0” y=”+1000.0” />

<node id=”6” x=”+1000.0” y=”+1000.0” />

</nodes>

2.1.2.2.1: Link :

جاده ها در sumo به مانند ديگر شبيه سازها به عنوان link بازنمايي شده اند . براي تعريف مشخصات شناسايي هر link (id) هر لينك ابتدا با اعداد يا رشته ها و يا هر دو تعريف مي شود . سپس اطلاعات در مورد گره ي بالادست ( upstream ) ، گره ي پايين دست (downstream) و نوع لينك در يك فايل با پسوند .edg.xml ذخيره مي شود .

اطلاعات راجع به هر نوع لينكي هم مي تواند در فايل .edg.xml و هم در يك فايل اضافي با پسوند type.xml تعريف شود . مثال زير نوع لينك استفاده شده براي مثال خودمان و چهار ويژگي تعريف شده براي آن را نشان مي دهد .

  1. Id : توسط كاربرد با اعداد يا رشته و يا هر دو تعريف مي گردد .
  2. Priority : اولويت رانندگي بر اساس مقررات راهنمايي و رانندگي و با اعداد تعريف شده است . بالاترين شماره ، بالاترين اولويت براي آن جاده است .
  3. Numlanes : تعداد لاين ها در جاده مربوطه .
  4. Speed : حداكثر سرعت مجاز لينك .

انواع (a) و (b) براي جاده هاي رو به مشرق با 3 لاين و رو به مغرب با 2 لاين هستند . نوع (c) سپس براي جاده هاي رو به شمال و جنوب اولويت پايين تري دارند .

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<types>

<type id=”a” priority=”3” numLanes=”3” speed=”13.889” />

<type id=”b” priority=”3” numLanes=”2” speed=”13.889” />

<type id=”c” priority=”2” numLanes=”3” speed=”13.889” />

</types>

مثال 1.2: تعريف فايل نوع لينك از مثال خودمان (quickstart.typ.xml)

با استفاده از فايل نوع لينك (typ.xml) فايل لينك براي مثال خودمان ساخته شده و در زير (مثال 1.3) نشان داده شده است .

ويژگيهاي تعريف شده شامل :

  1. id : توسط كاربر تعريف مي گردد ، تركيبي از شماره ، رشته و يا هر دو است .
  2. From : id گره ي بالا دست لينك مربوطه .
  3. To : id گره ي پايين دست لينك مربوطه .
  4. Type : id نوع لينك ، كه در فايل typ.xml تعريف شده است .
  5. Allow/disallow : id گره ي خودرويي كه در sumo تعريف شده و ممكن است با انواع خودروهاي تعريف شده توسط كاربر يكسان نباشند . اطلاعات بيشتر راجع به اين ويژگي در بخش 4.2 در دسترس است .

مثال 1.3: فايل لينك از مثال خودمان (quickstart.edg.xml) كه در صفحه بعد آورده شده است .

3.1.2.2.1 : Traffic movements :

بطور پيش فرض در sumo بر پايه ي اطلاعات هندسي داده شده تمامي حركات ترافيكي منطقي و ممكن طراحي شده است . U-turns ، اجازه داده است ، اگر هيچ خصوصيات مربوط به حركات ترافيكي وجود ندارد . تنظيمات پيش فرض بدين گونه است كه سمت راست ترين لاين هر لينك به سمت راست ترين لينك آن تخصيص يافته است .

مثال 1.4: تنظيمات مربوط به مثال خودمان را نشان مي دهد . معني هر ويژگي بشرح زير است :

  1. From : id لينكي كه حركات ترافيك را مشخص خواهد كرد .
  2. To : id لينك پايين دست .
  3. Fromlane/tolane : تعداد لاين هاي لينك تعريف شده ، در (a ) و تعداد لاين هاي (b) كه به هم متصل است .

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<edges xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”http://sumo.sf.net/xsd/edges_file.xsd“>

<edge id=”D1” from=”911” to=”91” type=”a” />

<edge id=”D2” from=”91” to=”911” type=”b” />

<edge id=”D3” from=”912” to=”92” type=”a” />

<edge id=”D4” from=”92” to=”912” type=”b” />

<edge id=”D5” from=”913” to=”93” type=”a” />

<edge id=”D6” from=”93” to=”913” type=”b” />

<edge id=”D7” from=”914” to=”94” type=”a” />

<edge id=”D8” from=”94” to=”914” type=”b” />

<edge id=”L1” from=”1” to=”911” type=”a” />

مثال 1.3: فايل لينك

(quickstart.edg.xml)

<edge id=”L2” from=”911” to=”1” type=”b” />

<edge id=”L3” from=”2” to=”912” type=”a” />

<edge id=”L4” from=”912” to=”2” type=”b” />

<edge id=”L5” from=”4” to=”913” type=”a” />

<edge id=”L6” from=”913” to=”4” type=”b” />

<edge id=”L7” from=”5” to=”914” type=”a” />

<edge id=”L8” from=”914” to=”5” type=”b” />

<edge id=”L9” from=”5” to=”6” type=”a” />

<edge id=”L10” from=”6” to=”5” type=”a” />

<edge id=”L11” from=”6” to=”1” type=”a” />

<edge id=”L12” from=”1” to=”6” type=”a” />

<edge id=”L13” from=”3” to=”2” type=”a” />

<edge id=”L14” from=”2” to=”3” type=”a” />

<edge id=”L15” from=”6” to=”3” type=”c” />

<edge id=”L16” from=”3” to=”6” type=”c” />

<edge id=”L17” from=”4” to=”3” type=”a” />

<edge id=”L18” from=”3” to=”4” type=”a” />

</edges>

براي مثال ، اولين رديف <connection from=”l2″ to=”l12″ fromlane=”0″ tolane=”0″/ > و دومين رديف <connection from=”l2″ to=”l12″ fromlane=”0″ tolane=”1″/ > در مثال 1.4 بدين معني است كه ترافيك لاين 0 از لينك 2 تنها از لاين هاي 0 و 1 لينك 12 استفاده مي كند . در مثال شكل 1.5 جنبش ترافيك مجاز بر پايه ي تنظيمات پيش فرض را نشان ميدهد .

در زير مثال 1.4 را مشاهده مي كنيم كه فايل مربوط به اتصالات است .

<?xml version=”1.0″ encoding=”UTF-8″ ?>

<connections xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”http://sumo.sf.net/xsd/connections_file.xsd“>

<connection from=”L2” to=”L12” fromLane=”0” toLane=”0” />

مثال 1.4: مشخصات جنبش ترافيكي

(quickstart.con.xml)

<connection from=”L2” to=”L12” fromLane=”0” toLane=”1” />

<connection from=”L2” to=”L12” fromLane=”1” toLane=”2” />

<connection from=”L4” to=”L14” fromLane=”0” toLane=”0” />

<connection from=”L4” to=”L14” fromLane=”1” toLane=”1” />

<connection from=”L4” to=”L14” fromLane=”1” toLane=”2” />

<connection from=”L9” to=”L11” fromLane=”0” toLane=”0” />

<connection from=”L9” to=”L11” fromLane=”1” toLane=”1” />

<connection from=”L9” to=”L11” fromLane=”1” toLane=”2” />

<connection from=”L9” to=”L15” fromLane=”1” toLane=”1” />

<connection from=”L9” to=”L15” fromLane=”2” toLane=”2” />

<connection from=”L16” to=”L10” fromLane=”0” toLane=”0” />

<connection from=”L16” to=”L10” fromLane=”1” toLane=”1” />

<connection from=”L16” to=”L10” fromLane=”1” toLane=”2” />

<connection from=”L16” to=”L11” fromLane=”2” toLane=”2” />

<connection from=”L12” to=”L15” fromLane=”0” toLane=”0” />

<connection from=”L12” to=”L15” fromLane=”1” toLane=”1” />

<connection from=”L12” to=”L10” fromLane=”1” toLane=”0” />

<connection from=”L12” to=”L10” fromLane=”1” toLane=”1” />

<connection from=”L12” to=”L10” fromLane=”2” toLane=”2” />

<connection from=”L14” to=”L16” fromLane=”1” toLane=”1” />

<connection from=”L14” to=”L16” fromLane=”1” toLane=”0” />

<connection from=”L14” to=”L16” fromLane=”2” toLane=”2” />

<connection from=”L14” to=”L18” fromLane=”0” toLane=”0” />

<connection from=”L14” to=”L18” fromLane=”1” toLane=”1” />

<connection from=”L14” to=”L18” fromLane=”1” toLane=”2” />

<connection from=”L17” to=”L16” fromLane=”0” toLane=”0” />

<connection from=”L17” to=”L16” fromLane=”1” toLane=”1” />

<connection from=”L17” to=”L16” fromLane=”1” toLane=”2” />

<connection from=”L17” to=”L13” fromLane=”1” toLane=”0” />

<connection from=”L17” to=”L13” fromLane=”1” toLane=”1” />

<connection from=”L17” to=”L13” fromLane=”2” toLane=”2” />

</connections>

2.2.2.1: توليد شبكه network generation :

فايل شبكه در Sumo با پسوند .net.xml ذخيره مي گردد . با استفاده از فايل هاي تعريف شده ي بالا ، quickstart.nod.xml ، quickstart.edg.xml ، quickstart.con.xml و quickstart.typ.xml فايل شبكه ي ما با نام quickstart.net.xml با بكار گيري ماژول netconvert توليد خواهد شد .

براي يك اجراي كارآمد ، يك فايل پيكربندي كه شامل نام فايل هاي ورودي ، نام فايل خروجي شبكه و ديگر اقدامات لازم است بايد ايجاد گردد . اگر فايل ها و ماژول netconvert در همان دايركتوري نيست مسير مربوط يه هر فايل بايد مشخص گردد . فايل پيكربندي براي مثال خودمان در مثال 1.6 به نام quickstart.netc.xml ذخيره شده است .

<configuration>

<input>

<edge-files value=”quickstart.edg.xml”/>

مثال 1.6: فايل configure براي توليد فايل شبكه

(quickstart.netc.cfg)

<node-files value=”quickstart.nod.xml”/>

<type-files value=”quickstart.typ.xml”/>

<connection-files value=”quickstart.con.xml”/>

</input>

<output>

<output-file value=”quickstart.net.xml”/>

</output>

<processing>

* <no-turnarounds value=”true”/>

</processing>

</configuration>

نكته : اگر جابجايي هاي U-turn ( خودمختار )امكان پذير نيست با اضافه كردن دستور * در شكل بالا مي توانيد اين اجازه را بدهيد . همان طور كه گفته شد ممنوعيت جابجايي هاي u-turn تنها در سطح جهاني و كلي انجام شده است .

در مثال خودمان فايل شبكه quickstart.net.xml با اجراي دستور زير در خط فرمان توليد خواهد شد .

Netconvert –c quickstart.netc.cfg

فايل شبكه توليد شده را مي توان با استفاده از sumo-gui براي چك كردن صحت كاركرد آن بررسي كرد . شكل 1.7 نشان مي دهد كه جنبش هاي خود مختار (u-turn) هنگامي كه دستور * اضافه شده ممنوع است .

<?xml version=”1.0″ encoding=”UTF-8″?>

<routes>

<vType accel=”3.0″ decel=”6.0″ id=”CarA” length=”5.0″ minGap=”2.5″ maxSpeed=”50.0″ sigma=”0.5″ />

<vType accel=”2.0″ decel=”6.0″ id=”CarB” length=”7.5″ minGap=”2.5″ maxSpeed=”50.0″ sigma=”0.5″ />

<vType accel=”1.0″ decel=”5.0″ id=”CarC” length=”5.0″ minGap=”2.5″ maxSpeed=”40.0″ sigma=”0.5″ />

<vType accel=”1.0″ decel=”5.0″ id=”CarD” length=”7.5″ minGap=”2.5″ maxSpeed=”30.0″ sigma=”0.5″ />

مثال 1.5: ترافيك مورد تقاضا و داده هاي مسير

(quickstart.rou.xml)

<route id=”route01″ edges=”D2 L2 L12 L10 L7 D7″/>

<route id=”route02″ edges=”D2 L2 L12 L15 L18 L5 D5″/>

<route id=”route03″ edges=”D2 L2 L12 L15 L13 L3 D3″/>

<route id=”route04″ edges=”D4 L4 L14 L18 L5 D5″/>

<route id=”route05″ edges=”D4 L4 L14 L16 L10 L7 D7″/>

<route id=”route06″ edges=”D4 L4 L14 L16 L11 L1 D1″/>

<route id=”route07″ edges=”D6 L6 L17 L13 L3 D3″/>

<route id=”route08″ edges=”D6 L6 L17 L16 L11 L1 D1″/>

<route id=”route09″ edges=”D6 L6 L17 L16 L10 L7 D7″/>

<route id=”route10″ edges=”D8 L8 L9 L11 L1 D1″/>

<route id=”route11″ edges=”D8 L8 L9 L15 L13 L3 D3″/>

<route id=”route12″ edges=”D8 L8 L9 L15 L18 L5 D5″/>

<vehicle depart=”54000″ id=”veh0″ route=”route01″ type=”CarA” color=”1,0,0″ />

<vehicle depart=”54000″ id=”veh1″ route=”route02″ type=”CarA” />

<vehicle depart=”54000″ id=”veh2″ route=”route03″ type=”CarA” />

<vehicle depart=”54000″ id=”veh3″ route=”route04″ type=”CarA” />

<vehicle depart=”54000″ id=”veh4″ route=”route05″ type=”CarA” />

<vehicle depart=”54000″ id=”veh5″ route=”route06″ type=”CarA” />

<vehicle depart=”54000″ id=”veh6″ route=”route07″ type=”CarA” />

<vehicle depart=”54000″ id=”veh7″ route=”route08″ type=”CarA” />

<vehicle depart=”54000″ id=”veh8″ route=”route09″ type=”CarA” />

<vehicle depart=”54000″ id=”veh9″ route=”route10″ type=”CarA” />

<vehicle depart=”54000″ id=”veh10″ route=”route11″ type=”CarA” />

<vehicle depart=”54000″ id=”veh11″ route=”route12″ type=”CarA” />

<vehicle depart=”54000″ id=”veh12″ route=”route01″ type=”CarB” color=”1,0,0″ />

<vehicle depart=”54000″ id=”veh13″ route=”route02″ type=”CarB” />

<vehicle depart=”54000″ id=”veh14″ route=”route03″ type=”CarB” />

<vehicle depart=”54000″ id=”veh15″ route=”route04″ type=”CarB” />

<vehicle depart=”54000″ id=”veh16″ route=”route05″ type=”CarB” />

<vehicle depart=”54000″ id=”veh17″ route=”route06″ type=”CarB” />

<vehicle depart=”54000″ id=”veh18″ route=”route07″ type=”CarB” />

</routes>

3.2.2.1: ترافيك مورد تقاضا :

ترافيك مورد تقاضا و داده ي مسير همراه با داده ي نوع خودرو با هم در يك فايل با پسوند .rou.xml تعريف مي شود . ساختار مربوط به اين فايل براي مثال خودمان در مثال 1.5 تعريف شده است .

1.3.2.2.1: انواع خودرو :

مثال 1.5 نشان مي دهد كه انواع خودروها بر اساس اطلاعات جدول 1.1 تعريف شده اند . ويژگي هاي مربوطه بشرح زير است .

  1. Id : id نوع خودرو كه توسط كاربر با اعداد ، رشته و يا تركيبي از اين دو تعريف مي شود .
  2. Accel : حداكثر شتاب مربوط به وسيله نقليه ي مربوطه بر حسب (m/) .
  3. Decal : حداكثر سرعت كاهش شتاب مربوط به وسيله نقليه مربوطه بر حسب (m/)
  4. Sigma : نقص رانندگان در رانندگي ( بين 0 و 1 )
  5. Length : طول خودرو بر حسب متر .
  6. Max speed : حداكثر سرعت خودرويي (m/s)
  7. Color : رنگ نوع ماشين . با 3 عدد تعريف شده است ( بين 0 و 1 ) براي قرمز ، سبز ، آبي ( به ترتيب )مقادير با (،) كاما از هم جدا شده اند و هيچ فضاي خالي بين آنها قرار ندارد . براي مثال (0،0،1) مشخص كننده رنگ قرمز ، (0،1،0) مشخص كننده رنگ سبز و (1،0،0) مشخص كننده رنگ آبي است . دنباله اي از ويژگيها را مي توان تغيير داد . ويژگي sigma براي تمامي انواع خودروها 0.5 در نظر گرفته شده است .

2.3.2.2.1: مسيرهاي ترافيك :

به دنبال اطلاعات نوع خودرو ، ترافيك داده ي مسير بايد به خوبي تعريف شود .

ويژگيهاي ورودي عبارتند از :

  1. : id : id يك مسير خاص كه توسط كاربر با اعداد ، رشته يا هر دو تعريف مي گردد .
  2. Edges : دنباله اي از اسامي لينك ها ، ساخت مسير تعريف شده .

3.3.2.2.1: تقاضاي ترافيك :

تقاضاي ترافيك داده با چهار ويژگي تعريف مي گردد .

  1. : depart : زمان حركت يك وسيله نقليه خاص .
  2. Id : id يك خودروي خاص كه با اعداد يا رشته يا تركيبي از اين دو توسط كاربر تعريف مي گردد .
  3. Route : مسير مورد استفاده توسط وسيله نقليه تعريف شده .
  4. Type : id نوع خودرو تعريف شده .

شبيه سازي

شبيه سازي ترافيك در sumo را مي توان به دو روش شرح داده شده در زير انجام داد . نمايي از فرآيندهاي شبيه سازي در شكل 1.8 آمده است . تمامي اسم فايل هاي داخل پرانتز در مثال استفاده شده اند .

شكل 1.8 : فرآيند شبيه سازي ترافيك

Network file

(example.net.xml)

Traffic jemand file

(example.rou.xml)

no

yes

visulization

SUMO

-in command line-

GUISIM

The required outputs

خط فرمان

يك شبيه سازي كارآمد ترافيك را مي توان با استفاده از خط فرمان بدست آورد ، بخصوص هنگامي كه با شبكه هاي بزرگ و ترافيك پيچيده روبرو هستيم . براي پياده سازي روند اجرا توصيه مي شود تمامي اقدامات اجرايي مورد نياز به عنوان مثال ، مسير و نام فايل ورودي ، انواع خروجي ، دايركتوري خروجي و مدت زمان شبيه سازي را در يك فايل پيكر بندي مشخص كنيد . براي مثال خودمان فايل پيكر بندي مربوطه در برنامه 1.7 نمايش داده شده است . سپس مي توان آن را با دستور زير اجرا نمود .

<?xml version=”1.0″ encoding=”iso-8859-1″?>

<configuration xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:noNamespaceSchemaLocation=”http://sumo.sf.net/xsd/sumoConfiguration.xsd”>

<input>

<net-file value=”quickstart.net.xml”/>

<route-files value=”quickstart.rou.xml”/>

</input>

<time>

<begin value=”54000″/>

<end value=”54900″/>

</time>

<time-to-teleport value=”-1″/>

</configuration>

ما با استفاده از گزينه <time-to-teleport value=”-1″/> ، براي غير فعال كردن حذف خودكار وسايل نقليه اي كه بيش از حد طولاني در مقابل تقاطع صبر مي كنند اقدام كرده ايم .

Sumo-GUI :

استفاده از sumo-gui راه ديگري براي اجراي شبيه سازي ترافيك با sumo است . در طول اجرا هر حركت خودرويي و پيشرفت ترافيك را مي توان مشاهده كرده و تنگناهاي احتمالي را بصورت بصري مشاهده نمود .

توجه : اگر شما شروع به آموزش با sumo-gui كنيد مي بينيد كه كل شبكه قابل ملاحظه بوده ولي هيچ وسيله نقليه اي در آن ديده نمي شود . اين به اين دليل است كه ديدگاه بسيار دوري در اختيار داريد ، شما مي توانيد با زوم كردن بر روي شبكه و بالا بردن مقدار delay قادر به مشاهده ي خودرو ها باشيد .

عكس 3.jpg

1.3.1: معرفي

اين خود آموز به عنوان يك راهنماي سطح بالا براي ايجاد يك سناروي sumo كاربرد دارد . اين خودآموز فهرستي از رئوس مطالب مراحل معمولي هنگام ساخت يك سناريو و ليستي از صفحات و يكي پدياي توصيه شده را براي هر بخش را ارائه مي دهد .

توجه : در اين قسمت فرض بر اين است كه بخش HELLOSUMO و QUICKSTART مطالعه شده است .

2.3.1: ساخت شبكه جاده

هر شبيه سازي نياز به يك جاده دارد . ماژول NETCONVERT براي ساخت شبكه اي كه مي تواند توسط شبيه ساز SUMO استفاده گردد ، بكار مي رود .

1.2.3.1: اگر قبلا داده ي شبكه را توليد كرده ايد

بررسي كنيد كه آيا وارد كردن اين فايل امكان پذير است يا خير : NETWORK/IMPORT . در غير اينصورت شما نياز به تبديل داده ها به فرمت XML داريد كه بتواند توسط NETCONVERT خوانده شود . اين صفحه را بخوانيد : NETWORKS/IMPORT

1.1.2.3.1: NETWORKS/IMPORT

NETWORKS/IMPORT اجازه مي دهد كه شبكه جاده ها را از فرمت هاي متفاوت به داخل SUMO وارد كنيد . در حال حاضر ساختارهاي زير پشتيباني مي شوند :

1.1.1.2.3.1: پايگاه داده ي OPENSTREETMAP

يك نقشه ي قابل ويرايش جهاني است . اين نقشه توسط كساني مانند شما تهيه و ساخته شده است . به آدرس زير قابل مشاهده است . (HTTP://WWW.OPENSTREETMAP.ORG) . در اين بخش در مورد تبديل فايل ها با داده ها از OPENSTREETMAP به يك فايل شبكه SUMO مي پردازيم .

چندين راه براي اين كه داده ها را چگونه از OPENSTREETMAP يك فايل دانلود كنيم وجود دارد . لطفا صفحه ي NETWORK/IMPORT/OPENSTREETMAPDOWNLOAD را براي ياد گيري اين چند روش مطالعه كنيد .

1.1.1.1.3.3.1: NETWORK/IMPORT/OPENSTREETMAPDOWNLOAD

از HTTP://WWW.OPENSTREETMAP.ORG

نكته : OSM داده هاي جغرافيايي مثل نقشه هاي خياباني را براي هر كسي كه خواهان استفاده از اين پروژه هستند را ايجاد و فراهم مي كند . اين پروژه به اين دليل آغاز شد كه اكثر نقشه هايي كه شما فكر مي كنيد رايگان هستند محدوديتهاي فني يا قانوني براي استفاده ي شما دارند . اين پروژه نقشه هاي مجاني بدون ايرادات فني و قانوني در اختيار شما قرار مي دهد .

مقدار داده هاي داخل OSM و كيفيت آنها واقعا شگفت انگيز است . حتي اگر هيچ داده ي مورد تقاضايي در دسترس نباشد كيفيت شبكه جاده ها OSM را به عنوان يك منبع داده براي شبيه سازي ترافيك با ارزش مي سازد . اين بخش تشريح مي كند كه چگونه مي توان داده هاي OSM را بدست آورد . داده هاي OSM قبل از اينكه توسط SUMO استفاده شوند بايد تبديل شوند .

داده هايي كه osm به ما مي دهد با پسوند .osm ذخيره شده و ما بايد آن را به .net.xml تبديل كنيم .

Netconvert –osm-files filename.osm.xml -o filename.net.xml

1.1.1.1.1.3.3.1: openstreetmap API

داده هاي osm را مي توان توسط مرورگر يا ترجيحاً با برنامه هايي از قبيل wget دانلود كرد . براي بدست آوردن جزئيات بيشتر wiki.openstreetmap.org/wiki/API را بخوانيد .

براي دانلود wget : wget.addictivecode.org

2.1.1.1.1.3.3.1: downloading a city ( www.overpass-api.de )

مدل سازی یک شهر یک شبیه سازی مورد استفاده ی رایج است . OSMOVERPASS API یک رابط راحت تر و مناسب تر برای بدست آوردن شبکه جاده ای و زیر ساخت ها داخل شهرها ( یا دیگر مناطق ) فراهم می کند .

این فرآیند دو مرحله ای است :

در آغاز شما باید ID ( شماره شناسایی ) منطقه ای را که می خواهید دانلود شود بدست بیاورید . سپس شما می توانید با استفاده از آن ID منطقه مورد نظر را دانلود کنید .

3.1.1.1.1.3.3.1: بدست آوردن ID یک ناحیه

به صفحه www.overpass-api.de/query=form.html رفته و پرس و جوی (query) زیر را داخل کادر کپی نمائید . سپس نام شهر مورد نظرتان را به جای “Berlin” کپی کرده و دستور را اجرا نمائید .

<query type=”relation”>

<haS-KV K=”boundary” V=”administrative”/>

<haS-KV K=”name” V=”Berlin”/>

</query>

<Print mode=”body”>

پس از اجرای این پرس و جو فایل مورد نظر شما بلافاصله دانلود خواهد شد . بخش های مهمی از نتایج داده عناصر <relation id=”…”> هستند . این ویژگی id برای دانلود داده ی OSM برای شهر مورد نظر شما استفاده خواهد شد .

مهم : در پرس و جوی بالا (Berlin) ممکن است چندین نتیجه وجود داشته باشد . معمولاً تگ های همراه با آن به اندازه کافی برای تمایز بین Berlin ، Berlin & Germany و Georgia / USA مفید خواهد بود .

اگر خروجی شامل منطقه ی مورد نظر شما نبود اضافه کردن نوع ناحیه مثلاٌ Berlin, city می تواند مفید باشد . اگر مشکل همچنان پا بر جا بود سایت www.overpass-api.de را مطالعه نمائید .

4.1.1.1.1.3.3.1 : دانلود کردن یک ناحیه با استفاده از id :

Id بدست آمده در مرحله ی قبل برای شهر Berlin عدد62422 بود . از لحاظ فنی این عدد تنها حاشیه ی شهر Berlin است و ما باید عدد 3,600,000,000 را برای بدست آوردن id ناحیه ی شهری Berlin به این عدد اضافه نمائیم .

3,600,000,000+62,422=3,600,062,422

با استفاده از این عدد یک query دیگر برای استفاده در صفحه ی پرس و جو ی سایت overpass-api ایجاد می کنیم .

<osm-script timeout=”180″ element-limit=”20000000″>

<union>

*<area-query ref=”3600062422″/>

<recurse type=”node-relation” into=”rels”/>

<recurse type=”node-way”/>

<recurse type=”way-relation” />

</union>

<union>

<item/>

<recurse type=”way-node”/>

</union>

<print mode=”body”/>

</osm-script>

شما می توانید عدد مورد نظرتان را در قسمت * وارد کرده و شروع به دانلود نلحیه مورد نظرتان کنید . این یک فایل حاوی داده های OSM برای شما دانلود خواهد کرد.

نکته مهم : برای شهرهای بزرگ شما مجبور به انطباق مقادیر timeout و element-limit می باشید .

5.1.1.1.1.3.3.1 : دانلود یک ناحیه مستطیلی شکل

ویرایشگر مبتنی بر جاوای (JOSM) یک ابزار کامل برای ویرایش داده های OSM است . این نرم افزار از این سایت قابل مشاهده است . JOSM.OPENSTREETMAP.DE) (

این یک نرم افزار بسیار قوی و کارآمد جهت ویرایش نقشه ها و همچنین ساخت نقشه ی مورد نظر شما می باشد . حتی می تواند با نام یک منطقه (مثلا Berlin ) نقشه ی مورد نظر را دانلود کند .

6.1.1.1.1.3.3.1 : دانلود یک ناحیه مستطیل شکل با استفاده از دستورات خط فرمان

دانلود کردن داده ی OSM از طریق دستور خط فرمان یک فرآیند دو مرحله ای است :

در ابتدا شما باید مختصات جغرافیایی منطقه ی خود را تعیین نمائید . سپس شما می توانید داده ی osm را با استفاده از این مختصات دانلود نمائید .

الف : بدست آوردن مختصات جغرافیایی

شما نیاز به اعداد (طول و عرض جغرافیایی) برای گوشه ی جنوب غربی و گوشه ی شمال شرقی منطقه ی مورد نظرتان دارید . شما می توانید این اعداد را در این صفحه (www.openstreetmap.de/Karte.html) توسط اشاره گر موس خود در محل مناسب نقشه و با رعایت مختصات در نوار وضعیت دریافت کنید . مختصات شهر داخلی Berlin به شرح زیر است :

SW-Corner: 13.278 52.473

NE-Corner: 13.471 52.552

ب : استفاده از URL

یک URL (آدرس وب) از مختصات جغرافیایی بسازید و داده ها را از URL دانلود نمائید . URL بشکل زیر است :

http://api.openstreetmap.org/api/0.6/map?bbox=<SW-longitude,SW-latitude,NE-longitude,NE-latitude>

برای مثال بالا این خواهد شد :

http://api.openstreetmap.org/api/0.6/map?bbox=13.278,52.473,13.471,52.552

شما می توانید داده ها را با وارد کردن url در مرورگر یا با استفاده از برنامه هایی از قبیل Wget بدست بیاورید . (wget.addictivecode.org)

Wget.exe “http://api.openstreetmap.org/api/0.6/map?bbox=Berlin” –o berlin.osm.xml

ج: دانلود کردن یک ناحیه وسیع

Openstreetmap-API اندازه ی یک ناحیه را برای استخراج کاهش می دهد . فایل اسکریپت کمکی osmGet.py که در مسیر/tools/import/osm <sumo-Home> قرار دارد که یک ناحیه وسیع را با تقسیم کردن استخراج نمائید .

فراخوانی آن :

OSMGET.py<PREFIX><BOUNDING-BOX><TILES-NUMBER>

BOUNDING-BOX باید بشرح زیر باشد :

<LAT-MIN>,<LONG-MIN>,<LAT-MAX>,<LONG-MAX>

توجه : “WGET ” باید نصب باشد و در مسیر قابل اجرا قرار گیرد .

این لسکریپت داده ی OSM را به عنو ان N فایل هایی با ترتیب زیر استخراج می کند .

N=<TILES-NUMBER> , named”<PREFIX><INDEX>-<TILES-NUMBER>.osm.xml”

این فایل ها توسط اسکریپت های osmbuild.py و osmbuildpolys.py که در مسیر زیر قرار دارد و می توانند وارد شوند .

<Sumo-HOME>/tools/import/osm

این قسمت در بخش NETWORKS/Import/openstreetmap/importscript توضیح داده خواهد شد .

عكس 4.jpg

1.2.1.1.2.3.1 : importing the road networks

Netconvert می تواند فایل های osm را وارد کند . نحوه ی وارد کردن به دو روش زیر است :

–osm-files<file>[,<files>]* یا—osm <file>[,<file>]

دستور فراخوانی network زیر فایل “berlin.osm” را می خواند و آن را به فایل شبکه ی sumo با نام berlin.net.xml تبدیل می کند .

  • Netconvert –osm-files berlin.osm -o berlin.net.xml

داده های osm همیشه دارای مختصات جغرافیایی WGS84 که بصورت اتوماتیک توسط netconvert تبدییل می شود . سپس شما نیاز به پارامترهای روشنی از طرح دارید اگر نیاز به طرحی متفاوت دارید .

2.2.1.1.2.3.1 : وارد کردن اشکال هندسی بیشتر

داده های osm نه تنها شامل شبکه مسیر بلکه شامل چند ضلعی های بیشتر از قبیل ساختمانها و رودخانه ها نیز می باشد . این چند ضلعی ها با استفاده از polyconvert می توانند خوانده شوند و سپس به یک sumo -gui-configuration اضافه شوند .

برای تغییر داده ی osm یک فایل نقشه ی اضافی مورد نیاز است .

polygonTypes>

<polygonType id=”waterway” name=”water” color=”.71,.82,.82″ layer=”-10″/>

<polygonType id=”natural.water” name=”water” color=”.71,.82,.82″ layer=”-10″/>

<polygonType id=”natural.wetland” name=”water” color=”.71,.82,.82″ layer=”-10″/>

<polygonType id=”sport” name=”sport” color=”.31,.90,.49″ layer=”2″/>

<polygonType id=”landuse.forest” name=”forest” color=”0.55,.77,.42″ layer=”-11″/>

<polygonType id=”natural.wood” name=”forest” color=”0.55,.77,.42″ layer=”-11″/>

<polygonType id=”natural” name=”natural” color=”0.55,.77,.42″ layer=”2″/>

<polygonType id=”landuse.park” name=”park” color=”.81,.96,.79″ layer=”-11″/>

<polygonType id=”leisure” name=”leisure” color=”.81,.96,.79″ layer=”0″/>

<polygonType id=”leisure.park” name=”tourism” color=”.81,.96,.79″ layer=”-10″/>

<polygonType id=”tourism” name=”tourism” color=”.81,.96,.79″ layer=”2″/>

<polygonType id=”landuse” name=”landuse” color=”.76,.76,.51″ layer=”-4″/>

<polygonType id=”landuse.residential” name=”residential” color=”.92,.92,.89″ layer=”-11″/>

<polygonType id=”landuse.commercial” name=”commercial” color=”.82,.82,.80″ layer=”-11″/>

<polygonType id=”shop” name=”shop” color=”.93,.78,1.0″ layer=”2″/>

<polygonType id=”landuse.industrial” name=”industrial” color=”.82,.82,.80″ layer=”-11″/>

<polygonType id=”man_made” name=”building” color=”1.0,.90,.90″ layer=”2″/>

<polygonType id=”building” name=”building” color=”1.0,.90,.90″ layer=”2″/>

<polygonType id=”amenity” name=”amenity” color=”.93,.78,.78″ layer=”2″/>

<polygonType id=”amenity.parking” name=”parking” color=”.72,.72,.70″ layer=”-2″/>

<polygonType id=”military” name=”military” color=”.60,.60,.36″ layer=”-10″/>

<polygonType id=”landuse.military” name=”military” color=”.60,.60,.36″ layer=”-10″/>

<polygonType id=”landuse.farm” name=”farm” color=”.95,.95,.8″ layer=”-11″/>

<polygonType id=”landuse.greenfield” name=”farm” color=”.95,.95,.8″ layer=”-11″/>

<polygonType id=”landuse.village_green” name=”farm” color=”.95,.95,.8″ layer=”-11″/>

<polygonType id=”power” name=”power” color=”.1,.1,.3″ layer=”5″/>

<polygonType id=”natural.land” name=”land” color=”.98,.87,.46″ layer=”-9″/>

<polygonType id=”boundary.administrative” name=”boundary.administrative” color=”.5,.0,.2″ layer=”-12″ fill=”false”/>

<polygonType id=”aeroway” name=”aeroway” color=”.5,.5,.5″ layer=”1″/>

<polygonType id=”aerialway” name=”aerialway” color=”.2,.2,.2″ layer=”1″/>

<polygonType id=”historic” name=”historic” color=”.5,1,.5″ layer=”2″/>

</polygonTypes>

با استفاده از این فایل نقشه ی typemap.xml بالا با دستور زیر polyconvert برای ورود چند ضلعی ها از داده osm برای تولید یک فایل sumo چند ضلعی فراخوانی می شود .

Polyconvert –net-file berlin.net.xml –osm-files berlin.osm –type-file typemap.xml -o berlin.poly.xml

فایل چند ضلعی khoramabad.poly.xml می تواند به فایل پیکربندی sumo اضافه گردد .

<configuration>

<input>

<net-file value=”berlin.net.xml”/>

<additional-files value=”berlin.poly.xml”/>

</input>

</cofiguration>

با نام khoramabad.sumo.cfg ذخیره می گردد .

3.2.1.1.2.3.1 : وارد کردن اسکریپت ها

اسکریپت کمکی osmGET.py اجازه می دهد که یک منطقه ی وسیع را دانلود کنید . خروجی فایلی به نام “prefix.osm.xml” خواهد بود . که سپس با استفاده از اسکریپت osmBuild.py خوانده می شود .

مسیر هر دو اسکریپت به شرح زیر است :

<SUMO-HOME>/toolS/import/OSM .

نحوه فراخوانی :

OSMGET.PY –BBOX<BOUNDING-BOX> –PREFIX <NAME> OSMBUILD.PY —

OSM-FILE <NAME>.OSM.XML [– vehicle-classes(all|road|passenger)][–type-filee<TYPEMAP-FILE>][–netconvert-options<OPT1,OPT2,OPT3>][–polyconvert-options<OPT1,OPT2,OPT3>]

اگر “جاده” به عنوان پارامتر ورودی داده شود ، تنها جاده ها توسط ماشین های جاده قابل استفاده هستند .

هنگام استفاده از گزینه ی – – TYPE-FILE یک فایل خروجی بیشتر با چند ضلعی های رودخانه ها و ساختمانها به عنوان نقاط خاص و مورد علاقه (POIS ) تولید خواهد شد . این خروجی را می توان در SUMO-GUI مشاهده کرد .

یک مثال از فایل TYPE-FILE را می توانید در مسیر

<SUMO-HOME>/TOOLS/import/osm/typemap-example.xml

گزینه های بیشتر برای NETCONVERT و POLYCONVERT می تواند با استفاده از گزینه های -NETCONVERT-OPTIONS و –POLYCONVERT-OPTIONS بکار گرفته شود . توجه داشته باشید که اسکریپت ها یک دستور ثانویه نیز برای انجام این کار را پشتیبانی می کنند .

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.

توسط
تومان

تماس با ما

شماره تماس

برگشت به منوی تماس ها

اتصال به واتساپ

برگشت به منوی تماس ها

اتصال به تلگرام

برگشت به منوی تماس ها

برگشت به منوی تماس ها

برگشت به منوی تماس ها

برگشت به منوی تماس ها