POST
|
Hi all, I would like to be able to create a series of street networks with varying levels of connectivity. One potential solution to do this would be to manipulate the number of dead end streets (or cul-de-sacs) found in a given network. Does anyone have any advice concerning how I might go about doing this in a robust way (ideally through a python script that operates on a grown street network). I imagine that one could grow a street network and then select X number of nodes at random from that network and convert them to cul-de-sacs. Subsequently manipulating X would allow one to create a series of networks with varying amounts of dead end streets (and thus connectivity). Unfortunately, I am unsure how to do this on a one off basis even - Tutorial 2 Part 5: Dynamic city layouts simply says "create some cul-de-sacs" but I don't see that option in any of the object parameters I can manipulate. I am happy to provide more information if the above is not clear. Any advice, suggestions, experience is much appreciated. Thanks Stephen
... View more
07-14-2014
05:32 PM
|
0
|
0
|
3713
|
POST
|
Hi all, I'm fairly new to CityEngine but am hoping to build a python script that will allow me to batch grow a series of street networks (with some set parameters) and export each street network to a shape file as follows: Pseudo code: Start a new scene Do while i < 100 { -growstreets(with some parameters) -select streets -export streets as .shp file with name: "streets" & i & ".shp" -select streets -delete streets i ++ } I'm not new to programming but I am new to CityEngine and python. I assume this is possible? !If anyone could point me in the direction of some suitable examples it would be much appreciated. Many Thanks Stephen edit: I am playing with ce.growStreets(graph, settings) - however this function requires that I specify a graph from which streets are grown. Using the UI I can simply graph->grow streets in a blank world - can someone suggest how I do the same thing in a script (i.e. not pass a graph or pass an empty one). Thanks edit2: OK - I am slowly moving forwards here - the following will create a new street network each time it is run, now i just need to export , delete the layer etc. from scripting import * # get a CityEngine instance ce = CE() def test(): newGraph = ce.addGraphLayer('new') ce.growStreets(newGraph) if __name__ == '__main__': test() pass At this stage I'm unsure if a mod should delete this thread - but perhaps it will be use to someone else just starting out. edit3: Close to a final solution - if I am doing this in a very cumbersome way please let me know ''' Created on Jul 11, 2014 @author: Stephen ''' from scripting import * # get a CityEngine instance ce = CE() def batchGrowStreets(): for i in range(1,11😞 ##Create a new graph layer newGraph = ce.addGraphLayer('new') ##Grow streets on it ce.growStreets(newGraph) ##Select them graph = ce.getObjectsFrom(ce.scene) ##setup the export file exportSettings = SHPExportGraphSettings() exportSettings.setFilename(ce.toFSPath("testCE" + str(i) + ".shp")) ##Export graph as shape file ce.export(graph, exportSettings) ##delete everything ce.delete(ce.getObjectsFrom(ce.scene)) if __name__ == '__main__': batchGrowStreets() pass
... View more
07-10-2014
06:03 PM
|
1
|
2
|
4733
|
Title | Kudos | Posted |
---|---|---|
1 | 07-10-2014 06:03 PM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:24 AM
|