Skip to content

Commit

Permalink
Parking Patch (#49)
Browse files Browse the repository at this point in the history
* Draft Edits - CSV Reference

Use CSVs to reference path locations per the request of CL at Esri. This seems to work on a PC test in CityEngine, but the fraction of Vans might be more explicit or half . Thank for suggestions!

* Delete GLBS (Vehicles)

New vehicles in Esri.lib are superior and are supported by the asset CSV. Delete old assets.

* Multiple Changes

Use complete folder for assets if the Asset_Metadata.csv is present. This will help force a transition.
Fix projection of rail transit pavement. Simplify rule.
TODO to fix microtransit inclusion in cars used.

* Update Asset_Metadata.csv

Reclassify transit connect vehicle as microtransit.

* Remove Duplicated Assets - Depend on Esri Lib for Street Furniture

These assets are in Esri Lib and better represented through the Asset CSV. There is some clunky behavior when selecting sidewalks and streets, but the enums do work as intended.

* Rework Parallel Parking Aligments

Based on some suggestions of Esri, I am trying to use alignScopeToGeometryBBOX for parking rather than to geometry. This could be in theory applied in other areas, but the potential impacts are unclear. This seems to provide better performance for parking spaces specifically, and the pattern used here would likely work elsewhere. Angle issues still exist at curbside drop off or longer polygons, but this seems to work better. Might for others as well that are clearly rectangular shapes.

* Rework Parallel Parking Alignments

Based on some suggestions of Esri, I am trying to use alignScopeToGeometryBBOX for parking rather than to geometry. This could be in theory applied in other areas, but the potential impacts are unclear. This seems to provide better performance for parking spaces specifically, and the pattern used here would likely work elsewhere. Angle issues still exist at curbside drop off or longer polygons, but this seems to work better. Might for others as well that are clearly rectangular shapes.

* Fix Parking

Parking is oriented in the wrong direction with align to bbox on straight streets. This addresses that but might keep some of the benefits of bbox alignment.
Minor edits to comments to remove special characters.
  • Loading branch information
d-wasserman authored Jan 12, 2023
1 parent 627d97c commit b95fad3
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 deletions.
13 changes: 7 additions & 6 deletions rules/Complete_Street.cga
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ attr Stop_Begin = _getInitialStop(connectionStart,nLanesLeft+_Lt_Transit_Lan
attr Stop_End = _getInitialStop(connectionEnd, _Distribute_Right_Lanes+_Rt_Transit_Lane_Count)

@Group("ROAD LAYOUT","Crosswalk Markings",3)
@Order(1) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom") @Description("NACTO-High­-visibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.") # TODO "solid","dashed","ladder"
@Order(1) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom") @Description("NACTO-High-visibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.") # TODO "solid","dashed","ladder"
attr Crosswalk_Begin = _getInitialCrosswalk(connectionStart)
@Order(2) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom")@Description("NACTO-High­-visibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.")
@Order(2) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom")@Description("NACTO-High-visibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.")
attr Crosswalk_End = _getInitialCrosswalk(connectionEnd)
@Order(3) @Distance @Range(min=0,max=20) @Description("Crosswalk to Stop Bar Distance. If the Crosswalk UV is clipping geometry, adjust this to set it back more on angled streets. If used, stop and yield lines should be placed a minimum of 4 ft (1.2 m) from the Crosswalk-MUTCD. NACTO suggests a minimum of 8 ft (2.44 m) in urban areas.")
attr Begin_Crosswalk_To_Stop_Bar= _getInitialGap(connectionStart)
Expand Down Expand Up @@ -599,7 +599,7 @@ const Design_Speed = case Speed_Limit_in_MPH>=40:Speed_Limit_in_MPH+7.5 else
# "To counteract these gruesome and unnecessary injuries and fatalities, cities should utilize
#speed control mechanisms that influence behavior, lower speeds, and in turn, reduce injuries
#and fatalities. Embracing a proactive design approach on new and existing streets with the goal
#of reducing speeds “may be the single most consequential intervention in reducing pedestrian injury and fatality."1"
#of reducing speeds may be the single most consequential intervention in reducing pedestrian injury and fatality."1"
#Thus they put forward: "Proactive Urban Street Design: Target Speed = Design Speed = Posted Speed"
#As a result of existing research relating to traffic speed and crash risk, and the fact that for the most part this
#rule is designed for urban streets, if the speed limit is greater than or equal to 40 mph (5 above NACTO suggested speed),
Expand Down Expand Up @@ -2378,9 +2378,10 @@ ParallelParkingCar(dir,ParkingLength, ParkingWidth) -->
else: NIL

ParallelParkingCarStep2(dir,ParkingLength, ParkingWidth) -->
# alignScopeToGeometry(yUp, 0, (case dir==2:1 else:3))#If distortion is too high, the edge numbers might change making this look weird. Hard to evaluate options.
alignScopeToGeometryBBox(zx)
rotateScope(0,(case dir == 2:DirectionalRotation +180 else: DirectionalRotation),0)
alignScopeToGeometry(yUp, 0, 3)#If distortion is too high, the edge numbers might change making this look weird. Hard to evaluate options.
alignScopeToGeometryBBox(zx) # This might correct for the distortion, but not assured.
rotateScope(0,DirectionalRotation,0)
rotateScope(0,(case dir == 2:180 else:0),0)
s(0,0,0)
i(vehicleAsset("car"))
label("parked car")
Expand Down
13 changes: 7 additions & 6 deletions rules/Complete_Street_Simple.cga
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ attr Stop_Begin = _getInitialStop(connectionStart,nLanesLeft+_Lt_Transit_Lan
attr Stop_End = _getInitialStop(connectionEnd, _Distribute_Right_Lanes+_Rt_Transit_Lane_Count)

@Group("ROAD LAYOUT","Crosswalk Markings",3)
@Order(1) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom") @Description("NACTO-High­-visibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.") # TODO "solid","dashed","ladder"
@Order(1) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom") @Description("NACTO-Highvisibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.") # TODO "solid","dashed","ladder"
attr Crosswalk_Begin = _getInitialCrosswalk(connectionStart)
@Order(2) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom")@Description("NACTO-High­-visibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.")
@Order(2) @Enum("none","continental","ladder","transverse","dashed","solid","custom","ladder custom","raised custom")@Description("NACTO-Highvisibility ladder, zebra, and continental crosswalk markings are preferable to standard parallel or dashed pavement markings. These are more visible to approaching vehicles and have been shown to improve yielding behavior.")
attr Crosswalk_End = _getInitialCrosswalk(connectionEnd)
@Order(3) @Distance @Range(min=0,max=20) @Description("Crosswalk to Stop Bar Distance. If the Crosswalk UV is clipping geometry, adjust this to set it back more on angled streets. If used, stop and yield lines should be placed a minimum of 4 ft (1.2 m) from the Crosswalk-MUTCD. NACTO suggests a minimum of 8 ft (2.44 m) in urban areas.")
attr Begin_Crosswalk_To_Stop_Bar= _getInitialGap(connectionStart)
Expand Down Expand Up @@ -599,7 +599,7 @@ const Design_Speed = case Speed_Limit_in_MPH>=40:Speed_Limit_in_MPH+7.5 else
# "To counteract these gruesome and unnecessary injuries and fatalities, cities should utilize
#speed control mechanisms that influence behavior, lower speeds, and in turn, reduce injuries
#and fatalities. Embracing a proactive design approach on new and existing streets with the goal
#of reducing speeds “may be the single most consequential intervention in reducing pedestrian injury and fatality."1"
#of reducing speeds may be the single most consequential intervention in reducing pedestrian injury and fatality."1"
#Thus they put forward: "Proactive Urban Street Design: Target Speed = Design Speed = Posted Speed"
#As a result of existing research relating to traffic speed and crash risk, and the fact that for the most part this
#rule is designed for urban streets, if the speed limit is greater than or equal to 40 mph (5 above NACTO suggested speed),
Expand Down Expand Up @@ -2378,9 +2378,10 @@ ParallelParkingCar(dir,ParkingLength, ParkingWidth) -->
else: NIL

ParallelParkingCarStep2(dir,ParkingLength, ParkingWidth) -->
# alignScopeToGeometry(yUp, 0, (case dir==2:1 else:3))#If distortion is too high, the edge numbers might change making this look weird. Hard to evaluate options.
alignScopeToGeometryBBox(zx)
rotateScope(0,(case dir == 2:DirectionalRotation +180 else: DirectionalRotation),0)
alignScopeToGeometry(yUp, 0, 3)#If distortion is too high, the edge numbers might change making this look weird. Hard to evaluate options.
alignScopeToGeometryBBox(zx) # This might correct for the distortion, but not assured.
rotateScope(0,DirectionalRotation,0)
rotateScope(0,(case dir == 2:180 else:0),0)
s(0,0,0)
i(vehicleAsset("car"))
label("parked car")
Expand Down

0 comments on commit b95fad3

Please sign in to comment.