You can create or import routes on bikemap.net. After that, export them as GPX, load the GPX file in geojson.io, and save it as GeoJSON. You can add as many GPX files as you want to a single GeoJSON.
You're probably getting some sort of exception being raised. Perhaps use a Queue to pass messages back to the parent process.
Tested working code:
import os, arcpy, arcgisscripting, time, sys
from multiprocessing import Process
from multiprocessing.queues import SimpleQueue
def ConvertCADtoGDB(msgs,in_dgn,out_gdb):
try:
gp = arcgisscripting.create()
gp.ImportCAD_conversion(in_dgn,out_gdb,'','Explode_Complex')
if not arcpy.Exists(out_gdb):raise RuntimeError('%s does not exist'%out_gdb)
msgs.put(gp.GetMessages())
except Exception as err:
msgs.put(gp.GetMessages())
msgs.put(err)
def main(srch_dir,gdb_dir,timeout):
for dirpath, dirnames, files in os.walk(srch_dir):
for f in files:
f_name, f_ext = os.path.splitext(f)
in_dgn = os.path.join(dirpath,f)
out_gdb = os.path.join(gdb_dir,f_name+'.gdb')
if f_ext == '.dgn':
if not os.path.isdir(out_gdb):
print 'creating',out_gdb
#####################################################
# Create a separate process to run the tool in
# and a Queue to pass messages back
m = SimpleQueue()
p = Process(target=ConvertCADtoGDB,
args=(m,in_dgn,out_gdb))
p.start()
p.join(timeout) # Wait for process to complete
err = None
while not m.empty(): # Check if messages in queue
msg = m.get()
if isinstance(msg, Exception):err= msg
else: print msg
if p.is_alive(): # Terminate process if it is
p.terminate() # still running after the timeout
print('terminated')
elif err:
print('unsuccessful: %s'%err)
else:
print('successful')
#####################################################
if __name__ == '__main__':
srch_dir=r'C:\Temp\dgns'
gdb_dir=r'C:\Temp\gdbs'
timeout=60 #Seconds
main(srch_dir,gdb_dir,timeout)
The output is:
creating C:\Temp\gdbs\smalltest.gdb
Executing: ImportCAD C:\Temp\dgns\smalltest.dgn C:\Temp\gdbs\smalltest.gdb # Explode_Complex
Start Time: Thu Jul 24 09:37:42 2014
...Importing layers from C:\Temp\dgns\smalltest.dgn
...Importing entities from C:\Temp\dgns\smalltest.dgn
......4 entities imported from C:\Temp\dgns\smalltest.dgn
...Importing and consolidating extended data to separate table
Succeeded at Thu Jul 24 09:37:46 2014 (Elapsed Time: 4.00 seconds)
successful
Best Answer
With gpxpy no, but with simple Python yes
Using the example of the PyPi page
(gpxpy uses lxml or elementtree to parse .gpx files (in parser.py file))