建築物與道路整併輸出(bld_line2dxf.py)

Table of contents

背景

  • 高架道路在噪音模擬作業中是很重要的噪音源,但是其幾何元件相對建築物來說還算單純,似乎沒有必要另外建立一個計算流程,附加在建築物的切割與輸出,會比較單純一些。
  • 未來如果要再加入地區(平面)道路,元件內容項目可能會很多,建議再另外創建新的計算流程。

程式碼說明

  • 呼叫line2dxf.py副程式,以得到高架道路的三維GeoPandaDataFrame,詳見line2dxf.py說明。
  • 內政部資料並沒有路寬,只有中心線的三維線段LineString/MuitiLineString,
  • 輸出dxf時不必加地標的高程,但必須是add_polyline3d
  • MuitiLineString狀況:必須針對polylin.geoms進行迴圈、歷遍所有的線段。
#原來bld2dxf.py內容
...
  sliced_gdf=create_line_segments(swLL,neLL)
  
  ii=0
  for i in sliced_gdf.index:
    layer_name = f"Polylin_{ii}"
    layer = doc.layers.add(layer_name)
    polylin=sliced_gdf.loc[i,'geometry_twd97']
    if polylin.geom_type=="LineString":
      pnts = [Vec3(p) for p in polylin.coords]
      msp.add_polyline3d(pnts, dxfattribs={ "layer": layer_name}) 
    elif polylin.geom_type=="MultiLineString":
      for lin in polylin.geoms:
        pnts = [Vec3(p) for p in lin.coords]
        msp.add_polyline3d(pnts, dxfattribs={ "layer": layer_name}) 
    ii+=1
    ...
# 輸出成檔案