简体   繁体   中英

GeoPandas.GeoDataFrame To CSV File fails to write data

I have a GPX file from my GPS that I import into a GeoDataFrame. I can view the contents and all looks good. I can export the GeoDataFrame to a GeoJson file and other formats without issue. However, when I try to export to a CSV file I get errors. A file gets created but only the headers appear.

I have experimented by dropping columns that are not useful and still get the same errors. Below is the code, the output from the export commands the GPX file content and packages listing.

Am I missing some parameter to make this export? Or something else.

Code:

#%%
import geopandas

#%%
filepath = r'garmin2.gpx'

#%%
gdf = geopandas.read_file(filepath)

print(gdf)

Trying to export to a file:

gdf.to_file("gps.csv", driver="CSV")
Traceback (most recent call last):

  File "fiona/ogrext.pyx", line 1133, in fiona.ogrext.WritingSession.start

  File "fiona/_err.pyx", line 291, in fiona._err.exc_wrap_pointer

CPLE_AppDefinedError: Attempt to create csv layer (file) against a non-directory datasource.


During handling of the above exception, another exception occurred:

Traceback (most recent call last):

  File "C:\Users\Admin\AppData\Local\Temp/ipykernel_12456/637700556.py", line 1, in <module>
    gdf.to_file("gps.csv", driver="CSV")

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\geopandas\geodataframe.py", line 1114, in to_file
    _to_file(self, filename, driver, schema, index, **kwargs)

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\geopandas\io\file.py", line 393, in _to_file
    with fiona.open(

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\fiona\env.py", line 408, in wrapper
    return f(*args, **kwargs)

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\fiona\__init__.py", line 272, in open
    c = Collection(path, mode, crs=crs, driver=driver, schema=this_schema,

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\fiona\collection.py", line 165, in __init__
    self.session.start(self, **kwargs)

  File "fiona/ogrext.pyx", line 1141, in fiona.ogrext.WritingSession.start

DriverIOError: Attempt to create csv layer (file) against a non-directory datasource.

Trying to export to a directory:

gdf.to_file(".\gpsout", driver="CSV")
Traceback (most recent call last):

  File "C:\Users\Admin\AppData\Local\Temp/ipykernel_12456/3155693819.py", line 1, in <module>
    gdf.to_file(".\gpsout", driver="CSV")

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\geopandas\geodataframe.py", line 1114, in to_file
    _to_file(self, filename, driver, schema, index, **kwargs)

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\geopandas\io\file.py", line 396, in _to_file
    colxn.writerecords(df.iterfeatures())

  File "C:\Users\Admin\.conda\envs\geo\lib\site-packages\fiona\collection.py", line 361, in writerecords
    self.session.writerecs(records, self)

  File "fiona/ogrext.pyx", line 1291, in fiona.ogrext.WritingSession.writerecs

  File "fiona/ogrext.pyx", line 354, in fiona.ogrext.OGRFeatureBuilder.build

  File "fiona/_err.pyx", line 269, in fiona._err.exc_wrap_int

FionaCPLError: The wrapped function returned an error code, but no error message was set.


The GPX File:

<?xml version="1.0" encoding="utf-8"?><gpx creator="Garmin Desktop App" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/ActivityExtension/v1 http://www8.garmin.com/xmlschemas/ActivityExtensionv1.xsd http://www.garmin.com/xmlschemas/AdventuresExtensions/v1 http://www8.garmin.com/xmlschemas/AdventuresExtensionv1.xsd http://www.garmin.com/xmlschemas/PressureExtension/v1 http://www.garmin.com/xmlschemas/PressureExtensionv1.xsd http://www.garmin.com/xmlschemas/TripExtensions/v1 http://www.garmin.com/xmlschemas/TripExtensionsv1.xsd http://www.garmin.com/xmlschemas/TripMetaDataExtensions/v1 http://www.garmin.com/xmlschemas/TripMetaDataExtensionsv1.xsd http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensions/v1 http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensionsv1.xsd http://www.garmin.com/xmlschemas/CreationTimeExtension/v1 http://www.garmin.com/xmlschemas/CreationTimeExtensionsv1.xsd http://www.garmin.com/xmlschemas/AccelerationExtension/v1 http://www.garmin.com/xmlschemas/AccelerationExtensionv1.xsd http://www.garmin.com/xmlschemas/PowerExtension/v1 http://www.garmin.com/xmlschemas/PowerExtensionv1.xsd http://www.garmin.com/xmlschemas/VideoExtension/v1 http://www.garmin.com/xmlschemas/VideoExtensionv1.xsd" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtrx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:trp="http://www.garmin.com/xmlschemas/TripExtensions/v1" xmlns:adv="http://www.garmin.com/xmlschemas/AdventuresExtensions/v1" xmlns:prs="http://www.garmin.com/xmlschemas/PressureExtension/v1" xmlns:tmd="http://www.garmin.com/xmlschemas/TripMetaDataExtensions/v1" xmlns:vptm="http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensions/v1" xmlns:ctx="http://www.garmin.com/xmlschemas/CreationTimeExtension/v1" xmlns:gpxacc="http://www.garmin.com/xmlschemas/AccelerationExtension/v1" xmlns:gpxpx="http://www.garmin.com/xmlschemas/PowerExtension/v1" xmlns:vidx1="http://www.garmin.com/xmlschemas/VideoExtension/v1">

  <metadata>
    <link href="http://www.garmin.com">
      <text>Garmin International</text>
    </link>
    <time>2021-10-03T19:57:48Z</time>
    <bounds maxlat="50.901700034737587" maxlon="2.294550100341439" minlat="25.061799958348274" minlon="121.64030003361404" />
  </metadata>

  <wpt lat="25.061799958348274" lon="121.64030003361404">
    <ele>38.100000000000001</ele>
    <time>2020-07-05T23:48:43Z</time>
    <name>Garmin Asia</name>
    <link href="Garmin/JPEG/Garmin_Asia.jpg" />
    <sym>Building</sym>
    <type>user</type>
    <extensions>
      <gpxx:WaypointExtension>
        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
      </gpxx:WaypointExtension>
      <wptx1:WaypointExtension>
        <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
      </wptx1:WaypointExtension>
      <ctx:CreationTimeExtension>
        <ctx:CreationTime>2020-07-05T23:48:43Z</ctx:CreationTime>
      </ctx:CreationTimeExtension>
    </extensions>
  </wpt>

  <wpt lat="50.901700034737587" lon="-1.489399988204241">
    <ele>35.9664</ele>
    <time>2020-07-05T23:48:43Z</time>
    <name>Garmin Europe</name>
    <link href="Garmin/JPEG/Garmin_Europe.jpg" />
    <sym>Building</sym>
    <type>user</type>
    <extensions>
      <gpxx:WaypointExtension>
        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
      </gpxx:WaypointExtension>
      <wptx1:WaypointExtension>
        <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
      </wptx1:WaypointExtension>
      <ctx:CreationTimeExtension>
        <ctx:CreationTime>2020-07-05T23:48:43Z</ctx:CreationTime>
      </ctx:CreationTimeExtension>
    </extensions>
  </wpt>

  <wpt lat="38.855600031092763" lon="-94.798999987542629">
    <ele>324.91680000000002</ele>
    <time>2020-07-05T23:48:43Z</time>
    <name>Garmin USA</name>
    <link href="Garmin/JPEG/Garmin_USA.jpg" />
    <sym>Building</sym>
    <type>user</type>
    <extensions>
      <gpxx:WaypointExtension>
        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
      </gpxx:WaypointExtension>
      <wptx1:WaypointExtension>
        <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
      </wptx1:WaypointExtension>
      <ctx:CreationTimeExtension>
        <ctx:CreationTime>2020-07-05T23:48:43Z</ctx:CreationTime>
      </ctx:CreationTimeExtension>
    </extensions>
  </wpt>
  


</gpx>

Environment:

pip freeze
alabaster==0.7.12
argh @ file:///home/conda/feedstock_root/build_artifacts/argh_1595627874344/work
arrow @ file:///home/conda/feedstock_root/build_artifacts/arrow_1635261338479/work
astroid @ file:///D:/bld/astroid_1628038570927/work
async-generator==1.10
atomicwrites @ file:///home/conda/feedstock_root/build_artifacts/atomicwrites_1588182545583/work
attrs @ file:///home/conda/feedstock_root/build_artifacts/attrs_1620387926260/work
autopep8 @ file:///home/conda/feedstock_root/build_artifacts/autopep8_1635070149841/work
Babel @ file:///home/conda/feedstock_root/build_artifacts/babel_1619719576210/work
backcall @ file:///home/conda/feedstock_root/build_artifacts/backcall_1592338393461/work
backports.functools-lru-cache @ file:///home/conda/feedstock_root/build_artifacts/backports.functools_lru_cache_1618230623929/work
bcrypt @ file:///D:/bld/bcrypt_1636021355911/work
Note: you may need to restart the kernel to use updated packages.binaryornot==0.4.4
black @ file:///home/conda/feedstock_root/build_artifacts/black-recipe_1637351668151/work
bleach @ file:///home/conda/feedstock_root/build_artifacts/bleach_1629908509068/work
brotlipy @ file:///D:/bld/brotlipy_1636012381660/work
certifi==2021.10.8
cffi @ file:///D:/bld/cffi_1636046293990/work
chardet @ file:///D:/bld/chardet_1635815015676/work
charset-normalizer @ file:///home/conda/feedstock_root/build_artifacts/charset-normalizer_1626371162869/work
click @ file:///D:/bld/click_1635822830533/work

click-plugins==1.1.1
cligj @ file:///home/conda/feedstock_root/build_artifacts/cligj_1633637764473/work
cloudpickle @ file:///home/conda/feedstock_root/build_artifacts/cloudpickle_1631273254894/work
colorama @ file:///home/conda/feedstock_root/build_artifacts/colorama_1602866480661/work
cookiecutter==1.7.0
cryptography @ file:///D:/bld/cryptography_1636040866969/work
cycler @ file:///home/conda/feedstock_root/build_artifacts/cycler_1635519461629/work
dataclasses @ file:///home/conda/feedstock_root/build_artifacts/dataclasses_1628958434797/work
debugpy @ file:///D:/bld/debugpy_1636043421411/work
decorator @ file:///home/conda/feedstock_root/build_artifacts/decorator_1631346842025/work
defusedxml @ file:///home/conda/feedstock_root/build_artifacts/defusedxml_1615232257335/work
diff-match-patch @ file:///home/conda/feedstock_root/build_artifacts/diff-match-patch_1594679019945/work
docutils @ file:///D:/bld/docutils_1637111461654/work
entrypoints @ file:///home/conda/feedstock_root/build_artifacts/entrypoints_1605121927639/work/dist/entrypoints-0.3-py2.py3-none-any.whl
Fiona==1.8.20
flake8 @ file:///home/conda/feedstock_root/build_artifacts/flake8_1620668104928/work
fonttools @ file:///D:/bld/fonttools_1636390463659/work
future @ file:///D:/bld/future_1635819659513/work
GDAL==3.3.3
geopandas @ file:///home/conda/feedstock_root/build_artifacts/geopandas_1634376623017/work
idna @ file:///home/conda/feedstock_root/build_artifacts/idna_1609836280497/work
imagesize @ file:///home/conda/feedstock_root/build_artifacts/imagesize_1636492669893/work
importlib-metadata @ file:///D:/bld/importlib-metadata_1636431708851/work
importlib-resources @ file:///home/conda/feedstock_root/build_artifacts/importlib_resources_1635615662634/work
inflection @ file:///home/conda/feedstock_root/build_artifacts/inflection_1598089801258/work
intervaltree==3.0.2
ipykernel @ file:///D:/bld/ipykernel_1636998422331/work/dist/ipykernel-6.5.0-py3-none-any.whl
ipython @ file:///D:/bld/ipython_1636764822251/work
ipython-genutils==0.2.0
isort @ file:///home/conda/feedstock_root/build_artifacts/isort_1636447814597/work
jedi @ file:///D:/bld/jedi_1637175281472/work
Jinja2 @ file:///home/conda/feedstock_root/build_artifacts/jinja2_1636510082894/work
jinja2-time==0.2.0
jsonschema @ file:///home/conda/feedstock_root/build_artifacts/jsonschema_1636165360877/work
jupyter-client @ file:///home/conda/feedstock_root/build_artifacts/jupyter_client_1615693636836/work
jupyter-core @ file:///D:/bld/jupyter_core_1636814449073/work
jupyterlab-pygments @ file:///home/conda/feedstock_root/build_artifacts/jupyterlab_pygments_1601375948261/work
keyring @ file:///D:/bld/keyring_1636762128704/work
kiwisolver @ file:///D:/bld/kiwisolver_1635836839743/work
lazy-object-proxy @ file:///D:/bld/lazy-object-proxy_1635853529924/work
MarkupSafe @ file:///D:/bld/markupsafe_1635833725355/work
matplotlib @ file:///D:/bld/matplotlib-suite_1637205247343/work
matplotlib-inline @ file:///home/conda/feedstock_root/build_artifacts/matplotlib-inline_1631080358261/work
mccabe==0.6.1
mistune @ file:///D:/bld/mistune_1635844874781/work
munch==2.5.0
munkres==1.1.4
mypy-extensions @ file:///D:/bld/mypy_extensions_1635839836822/work
nbclient @ file:///home/conda/feedstock_root/build_artifacts/nbclient_1637327213451/work
nbconvert @ file:///D:/bld/nbconvert_1636897399189/work
nbformat @ file:///home/conda/feedstock_root/build_artifacts/nbformat_1617383142101/work
nest-asyncio @ file:///home/conda/feedstock_root/build_artifacts/nest-asyncio_1617163391303/work
numpy @ file:///D:/bld/numpy_1636145500119/work
numpydoc @ file:///home/conda/feedstock_root/build_artifacts/numpydoc_1601580905698/work
olefile @ file:///home/conda/feedstock_root/build_artifacts/olefile_1602866521163/work
packaging @ file:///home/conda/feedstock_root/build_artifacts/packaging_1637239678211/work
pandas @ file:///D:/bld/pandas_1636223526752/work
pandocfilters @ file:///home/conda/feedstock_root/build_artifacts/pandocfilters_1631603243851/work
paramiko @ file:///home/conda/feedstock_root/build_artifacts/paramiko_1634129469713/work
parso @ file:///home/conda/feedstock_root/build_artifacts/parso_1617148930513/work
pathspec @ file:///home/conda/feedstock_root/build_artifacts/pathspec_1626613672358/work
pexpect @ file:///home/conda/feedstock_root/build_artifacts/pexpect_1602535608087/work
pickleshare @ file:///home/conda/feedstock_root/build_artifacts/pickleshare_1602536217715/work
Pillow @ file:///D:/bld/pillow_1636558975346/work
platformdirs @ file:///home/conda/feedstock_root/build_artifacts/platformdirs_1630400214373/work
pluggy @ file:///D:/bld/pluggy_1635833078128/work
poyo==0.5.0
prompt-toolkit @ file:///home/conda/feedstock_root/build_artifacts/prompt-toolkit_1636045889479/work
psutil @ file:///D:/bld/psutil_1635822871234/work
ptyprocess @ file:///home/conda/feedstock_root/build_artifacts/ptyprocess_1609419310487/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
pycodestyle @ file:///home/conda/feedstock_root/build_artifacts/pycodestyle_1615833610040/work
pycparser @ file:///home/conda/feedstock_root/build_artifacts/pycparser_1636257122734/work
pydocstyle @ file:///home/conda/feedstock_root/build_artifacts/pydocstyle_1621377123289/work
pyflakes @ file:///home/conda/feedstock_root/build_artifacts/pyflakes_1616623675904/work
Pygments @ file:///home/conda/feedstock_root/build_artifacts/pygments_1629119114968/work
pylint @ file:///home/conda/feedstock_root/build_artifacts/pylint_1627505907506/work
pyls-spyder @ file:///home/conda/feedstock_root/build_artifacts/pyls-spyder_1619747398504/work
PyNaCl @ file:///D:/bld/pynacl_1636021096739/work
pyOpenSSL @ file:///home/conda/feedstock_root/build_artifacts/pyopenssl_1633192417276/work
pyparsing @ file:///home/conda/feedstock_root/build_artifacts/pyparsing_1636757021002/work
pyproj @ file:///D:/bld/pyproj_1633060699700/work
PyQt5==5.12.3
PyQt5_sip==4.19.18
PyQtChart==5.12
PyQtWebEngine==5.12.1
pyrsistent @ file:///D:/bld/pyrsistent_1636052904035/work
PySocks @ file:///D:/bld/pysocks_1635862590164/work
python-dateutil @ file:///home/conda/feedstock_root/build_artifacts/python-dateutil_1626286286081/work
python-lsp-black @ file:///home/conda/feedstock_root/build_artifacts/python-lsp-black_1621451825839/work
python-lsp-jsonrpc @ file:///home/conda/feedstock_root/build_artifacts/python-lsp-jsonrpc_1618530352985/work
python-lsp-server @ file:///home/conda/feedstock_root/build_artifacts/python-lsp-server_1633995817655/work
pytz @ file:///home/conda/feedstock_root/build_artifacts/pytz_1633452062248/work
pywin32==302
pywin32-ctypes @ file:///D:/bld/pywin32-ctypes_1635826703191/work
PyYAML @ file:///D:/bld/pyyaml_1636139895442/work
pyzmq @ file:///D:/bld/pyzmq_1635877383625/work
QDarkStyle @ file:///home/conda/feedstock_root/build_artifacts/qdarkstyle_1617328841504/work
qstylizer @ file:///home/conda/feedstock_root/build_artifacts/qstylizer_1627619480283/work/dist/qstylizer-0.2.1-py2.py3-none-any.whl
QtAwesome @ file:///home/conda/feedstock_root/build_artifacts/qtawesome_1635880239280/work
qtconsole @ file:///home/conda/feedstock_root/build_artifacts/qtconsole_1625023841584/work
QtPy @ file:///home/conda/feedstock_root/build_artifacts/qtpy_1632440819550/work
regex @ file:///D:/bld/regex_1636504277262/work
requests @ file:///home/conda/feedstock_root/build_artifacts/requests_1626393743643/work
rope @ file:///home/conda/feedstock_root/build_artifacts/rope_1637602230800/work
Rtree @ file:///D:/bld/rtree_1637430983027/work
Shapely==1.8.0
six @ file:///home/conda/feedstock_root/build_artifacts/six_1620240208055/work
snowballstemmer @ file:///home/conda/feedstock_root/build_artifacts/snowballstemmer_1637143057757/work
sortedcontainers @ file:///home/conda/feedstock_root/build_artifacts/sortedcontainers_1621217038088/work
Sphinx @ file:///home/conda/feedstock_root/build_artifacts/sphinx_1636576116100/work
sphinxcontrib-applehelp==1.0.2
sphinxcontrib-devhelp==1.0.2
sphinxcontrib-htmlhelp @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-htmlhelp_1621704829796/work
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==1.0.3
sphinxcontrib-serializinghtml @ file:///home/conda/feedstock_root/build_artifacts/sphinxcontrib-serializinghtml_1637000050264/work
spyder @ file:///D:/bld/spyder_1636431064566/work
spyder-kernels @ file:///D:/bld/spyder-kernels_1637043083747/work
testpath @ file:///home/conda/feedstock_root/build_artifacts/testpath_1621261527237/work
textdistance @ file:///home/conda/feedstock_root/build_artifacts/textdistance_1635354148551/work
three-merge @ file:///home/conda/feedstock_root/build_artifacts/three-merge_1595515817927/work
tinycss2 @ file:///home/conda/feedstock_root/build_artifacts/tinycss2_1637612658783/work
toml @ file:///home/conda/feedstock_root/build_artifacts/toml_1604308577558/work
tomli @ file:///home/conda/feedstock_root/build_artifacts/tomli_1635181214134/work
tornado @ file:///D:/bld/tornado_1635819758615/work
traitlets @ file:///home/conda/feedstock_root/build_artifacts/traitlets_1635260543454/work
typed-ast @ file:///D:/bld/typed-ast_1636834457860/work
typing_extensions @ file:///home/conda/feedstock_root/build_artifacts/typing_extensions_1637155965157/work
ujson @ file:///D:/bld/ujson_1635855771243/work
unicodedata2 @ file:///D:/bld/unicodedata2_1637177842659/work
urllib3 @ file:///home/conda/feedstock_root/build_artifacts/urllib3_1632350318291/work
watchdog @ file:///D:/bld/watchdog_1636266705330/work
wcwidth @ file:///home/conda/feedstock_root/build_artifacts/wcwidth_1600965781394/work
webencodings==0.5.1
whichcraft==0.6.1
win-inet-pton @ file:///D:/bld/win_inet_pton_1635833007271/work
wrapt @ file:///D:/bld/wrapt_1610095100080/work
yapf @ file:///home/conda/feedstock_root/build_artifacts/yapf_1618790300295/work
zipp @ file:///home/conda/feedstock_root/build_artifacts/zipp_1633302054558/work

I wrote gpxcsv just for this use case. While it can create a bunch of csv files.

> gpxcsv *.gpx

Or if you want to load data into pandas, since it makes a list of dictionaries, it's easy:

from gpxcsv import gpxtolist
df = pd.DataFrame(gpxtolist(file_name))

Just requires lxml. It'll turn any extension tag into a column too, such as your SymbolAndName data in the extension.

Just install with pip install gpxcsv and you're ready to go.

  • CSV is not a geometry format. So make geometry serialisable then use pandas
  • first step use WKT encoding of geometry
  • second step convert from geopandas to pandas
  • third step use pandas to_csv()
import geopandas as gpd
import io
import pandas as pd

gpx = """<?xml version="1.0" encoding="utf-8"?><gpx creator="Garmin Desktop App" version="1.1" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd http://www.garmin.com/xmlschemas/WaypointExtension/v1 http://www8.garmin.com/xmlschemas/WaypointExtensionv1.xsd http://www.garmin.com/xmlschemas/TrackPointExtension/v1 http://www.garmin.com/xmlschemas/TrackPointExtensionv1.xsd http://www.garmin.com/xmlschemas/GpxExtensions/v3 http://www8.garmin.com/xmlschemas/GpxExtensionsv3.xsd http://www.garmin.com/xmlschemas/ActivityExtension/v1 http://www8.garmin.com/xmlschemas/ActivityExtensionv1.xsd http://www.garmin.com/xmlschemas/AdventuresExtensions/v1 http://www8.garmin.com/xmlschemas/AdventuresExtensionv1.xsd http://www.garmin.com/xmlschemas/PressureExtension/v1 http://www.garmin.com/xmlschemas/PressureExtensionv1.xsd http://www.garmin.com/xmlschemas/TripExtensions/v1 http://www.garmin.com/xmlschemas/TripExtensionsv1.xsd http://www.garmin.com/xmlschemas/TripMetaDataExtensions/v1 http://www.garmin.com/xmlschemas/TripMetaDataExtensionsv1.xsd http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensions/v1 http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensionsv1.xsd http://www.garmin.com/xmlschemas/CreationTimeExtension/v1 http://www.garmin.com/xmlschemas/CreationTimeExtensionsv1.xsd http://www.garmin.com/xmlschemas/AccelerationExtension/v1 http://www.garmin.com/xmlschemas/AccelerationExtensionv1.xsd http://www.garmin.com/xmlschemas/PowerExtension/v1 http://www.garmin.com/xmlschemas/PowerExtensionv1.xsd http://www.garmin.com/xmlschemas/VideoExtension/v1 http://www.garmin.com/xmlschemas/VideoExtensionv1.xsd" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wptx1="http://www.garmin.com/xmlschemas/WaypointExtension/v1" xmlns:gpxtrx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3" xmlns:trp="http://www.garmin.com/xmlschemas/TripExtensions/v1" xmlns:adv="http://www.garmin.com/xmlschemas/AdventuresExtensions/v1" xmlns:prs="http://www.garmin.com/xmlschemas/PressureExtension/v1" xmlns:tmd="http://www.garmin.com/xmlschemas/TripMetaDataExtensions/v1" xmlns:vptm="http://www.garmin.com/xmlschemas/ViaPointTransportationModeExtensions/v1" xmlns:ctx="http://www.garmin.com/xmlschemas/CreationTimeExtension/v1" xmlns:gpxacc="http://www.garmin.com/xmlschemas/AccelerationExtension/v1" xmlns:gpxpx="http://www.garmin.com/xmlschemas/PowerExtension/v1" xmlns:vidx1="http://www.garmin.com/xmlschemas/VideoExtension/v1">

  <metadata>
    <link href="http://www.garmin.com">
      <text>Garmin International</text>
    </link>
    <time>2021-10-03T19:57:48Z</time>
    <bounds maxlat="50.901700034737587" maxlon="2.294550100341439" minlat="25.061799958348274" minlon="121.64030003361404" />
  </metadata>

  <wpt lat="25.061799958348274" lon="121.64030003361404">
    <ele>38.100000000000001</ele>
    <time>2020-07-05T23:48:43Z</time>
    <name>Garmin Asia</name>
    <link href="Garmin/JPEG/Garmin_Asia.jpg" />
    <sym>Building</sym>
    <type>user</type>
    <extensions>
      <gpxx:WaypointExtension>
        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
      </gpxx:WaypointExtension>
      <wptx1:WaypointExtension>
        <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
      </wptx1:WaypointExtension>
      <ctx:CreationTimeExtension>
        <ctx:CreationTime>2020-07-05T23:48:43Z</ctx:CreationTime>
      </ctx:CreationTimeExtension>
    </extensions>
  </wpt>

  <wpt lat="50.901700034737587" lon="-1.489399988204241">
    <ele>35.9664</ele>
    <time>2020-07-05T23:48:43Z</time>
    <name>Garmin Europe</name>
    <link href="Garmin/JPEG/Garmin_Europe.jpg" />
    <sym>Building</sym>
    <type>user</type>
    <extensions>
      <gpxx:WaypointExtension>
        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
      </gpxx:WaypointExtension>
      <wptx1:WaypointExtension>
        <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
      </wptx1:WaypointExtension>
      <ctx:CreationTimeExtension>
        <ctx:CreationTime>2020-07-05T23:48:43Z</ctx:CreationTime>
      </ctx:CreationTimeExtension>
    </extensions>
  </wpt>

  <wpt lat="38.855600031092763" lon="-94.798999987542629">
    <ele>324.91680000000002</ele>
    <time>2020-07-05T23:48:43Z</time>
    <name>Garmin USA</name>
    <link href="Garmin/JPEG/Garmin_USA.jpg" />
    <sym>Building</sym>
    <type>user</type>
    <extensions>
      <gpxx:WaypointExtension>
        <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode>
      </gpxx:WaypointExtension>
      <wptx1:WaypointExtension>
        <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
      </wptx1:WaypointExtension>
      <ctx:CreationTimeExtension>
        <ctx:CreationTime>2020-07-05T23:48:43Z</ctx:CreationTime>
      </ctx:CreationTimeExtension>
    </extensions>
  </wpt>
  


</gpx>"""

gdf = gpd.read_file(io.StringIO(gpx))

pd.DataFrame(gdf.assign(geometry=gdf["geometry"].apply(lambda p: p.wkt))).to_csv()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM