Home > Enterprise >  ValueError: GeoDataFrame does not support multiple columns using the geometry column name 'geom
ValueError: GeoDataFrame does not support multiple columns using the geometry column name 'geom

Time:04-20

I am receiving this error when I try to upload a csv file as a geodataframe.According to other questions resolutions on this site, this method should do the trick.

Here is the code that I am using to: upload the file as a gdf, then produce a subset dataframe with only some of the columns present.

cp_union = gpd.read_file(r'C:\Users\User\Desktop\CPAWS\terrestrial_outputs\cp_union.csv')
cp_union.crs = 'epsg:3005'

cp_trimmed = cp_union[['COSEWIC_status','reason_for_designation','cnm_eng','iucn_cat','mgmt_e','status_e','classification','sq_m']]

As stated in the title, the error that i am receiving is this: ValueError: GeoDataFrame does not support multiple columns using the geometry column name 'geometry'. Is there some part of the process of saving a gdf as a csv and then reloading it as a gdf that would cause the creation of an additional geometry column?

EDIT

In another script, I loaded the same csv file as a pd dataframe. Here is the first row of data within that pd dataframe.

    Unnamed: 0                                                                0
fid_critic                                                                0
scntfc_nm                                              Castilleja victoriae
cnm_eng                                               Victoria's Owl-clover
cnm_fren                                            Castilléjie de Victoria
cswc_pop                                                                NaN
ch_stat                                                               Final
cb_site_nm                                                     Cattle Point
ch_detail                                                  Detailed Polygon
ch_variant                                                              NaN
ch_method                                                               NaN
hectares                                                             0.8559
utm_zone                                                                 10
utm_east                                                             478383
utm_north                                                           5365043
latitude                                                          48.438164
longitude                                                        -123.29226
shape_1                                                                 0.0
objectid                                                         10251681.0
area_sqm                                                          8478.6733
feat_len                                                           326.5008
fid_protec                                                               -1
name_e                                                                  NaN
name_f                                                                  NaN
aichi_t11                                                               NaN
iucn_cat                                                                NaN
oecm                                                                    NaN
o_area                                                                  0.0
loc_e                                                                   NaN
loc_f                                                                   NaN
type_e                                                                  NaN
mgmt_e                                                                  NaN
gov_type                                                                NaN
legisl_e                                                                NaN
status_e                                                                NaN
protdate                                                                  0
delisdate                                                                 0
owner_e                                                                 NaN
owner_f                                                                 NaN
subs_right                                                              NaN
comments                                                                NaN
url                                                                     NaN
shape_leng                                                              0.0
protected                                                                 0
shape_le_1                                                       320.859687
shape_area                                                      6499.790343
geometry                  POLYGON ((1200735.4438 384059.0133999996, 1200...
COSEWIC_status                                                   Endangered
reason_for_designation    This small annual herb is confined to a very s...
sq_m                                                            6499.790343
classification                                                            c
Name: 0, dtype: object

So my only theory here is that, when you save a gdf as a csv, that the csv contains a column called geometry. Then when you load that csv as a gdf, that geopandas tries to create a new geometry column ontop of the one that was already in the csv. I could be completely wrong about this. Even if this is the case, Im not sure how to go about resolving the issue.

Thanks for the help!

CodePudding user response:

  • using your sample data to create a CSV. Had to replace geometry as sample is not a valid WKT string
  • re-produced your error
  • solved by loading using pandas then converting to geopandas

solution

df = pd.read_csv(f)
cp_union = gpd.GeoDataFrame(
    df.loc[:, [c for c in df.columns if c != "geometry"]],
    geometry=gpd.GeoSeries.from_wkt(df["geometry"]),
    crs="epsg:3005",
)

full code

import pandas as pd
import geopandas as gpd
import io
from pathlib import Path

# fmt: off
df_q = pd.read_csv(io.StringIO("""Unnamed: 0                                                                0
fid_critic                                                                0
scntfc_nm                                              Castilleja victoriae
cnm_eng                                               Victoria's Owl-clover
cnm_fren                                            Castilléjie de Victoria
cswc_pop                                                                NaN
ch_stat                                                               Final
cb_site_nm                                                     Cattle Point
ch_detail                                                  Detailed Polygon
ch_variant                                                              NaN
ch_method                                                               NaN
hectares                                                             0.8559
utm_zone                                                                 10
utm_east                                                             478383
utm_north                                                           5365043
latitude                                                          48.438164
longitude                                                        -123.29226
shape_1                                                                 0.0
objectid                                                         10251681.0
area_sqm                                                          8478.6733
feat_len                                                           326.5008
fid_protec                                                               -1
name_e                                                                  NaN
name_f                                                                  NaN
aichi_t11                                                               NaN
iucn_cat                                                                NaN
oecm                                                                    NaN
o_area                                                                  0.0
loc_e                                                                   NaN
loc_f                                                                   NaN
type_e                                                                  NaN
mgmt_e                                                                  NaN
gov_type                                                                NaN
legisl_e                                                                NaN
status_e                                                                NaN
protdate                                                                  0
delisdate                                                                 0
owner_e                                                                 NaN
owner_f                                                                 NaN
subs_right                                                              NaN
comments                                                                NaN
url                                                                     NaN
shape_leng                                                              0.0
protected                                                                 0
shape_le_1                                                       320.859687
shape_area                                                      6499.790343
geometry                  POLYGON ((5769135.557632876 7083849.386658552, 5843426.213336911 7098018.122146672, 5852821.812968816 7081377.7312996285, 5914814.478616157 7091734.620966213, 5883751.009067913 7017032.330573363, 5902031.719573214 6983898.953064103, 5864452.659165712 6922039.030140929, 5829585.402576889 6878872.269967912, 5835906.522449658 6846685.714836724, 5800391.382286092 6827305.509709548, 5765261.646424723 6876008.057438379, 5765261.402301509 6876010.894933639, 5765264.431247815 6876008.786040769, 5760553.056402712 6927522.42488809, 5720896.599172597 6983360.181762057, 5755349.303491102 7039380.015177476, 5769135.557632876 7083849.386658552))
COSEWIC_status                                                   Endangered
reason_for_designation    This small annual herb is confined to a very s...
sq_m                                                            6499.790343
classification                                                            c"""), sep="\s\s ", engine="python", header=None).set_index(0).T
# fmt: on
# generate a CSV file from sample data
f = Path.cwd().joinpath("SO_q.csv")
df_q.to_csv(f, index=False)

# replicate issue...
try:
    gpd.read_file(f)
except ValueError as e:
    print(e)

# now the actual solution
df = pd.read_csv(f)
cp_union = gpd.GeoDataFrame(
    df.loc[:, [c for c in df.columns if c != "geometry"]],
    geometry=gpd.GeoSeries.from_wkt(df["geometry"]),
    crs="epsg:3005",
)
  • Related