Skip to content
This repository has been archived by the owner on Sep 3, 2018. It is now read-only.

'NoneType' object has no attribute 'GetFieldCount' #1

Open
matthiasdemuzere opened this issue Apr 6, 2018 · 3 comments
Open

'NoneType' object has no attribute 'GetFieldCount' #1

matthiasdemuzere opened this issue Apr 6, 2018 · 3 comments

Comments

@matthiasdemuzere
Copy link

Hi Gena,

I just tried to upload this file (changed .kml extension for upload here) to a fusion table based on your script. Unfortunately I got the following error:

python ./ogr2ft.py -i test.kml -o test_fusion_table
Creating Fusion Table: test_fusion_table
Traceback (most recent call last):
File "./ogr2ft.py", line 184, in
convert(args.input_file, args.output_fusion_table, args.add_missing)
File "./ogr2ft.py", line 141, in convert
[dst_layer.CreateField(f.GetFieldDefnRef(i)) for i in range(f.GetFieldCount())]
AttributeError: 'NoneType' object has no attribute 'GetFieldCount'

I tried to strip your code to get to this point of error, but that seems to work on my system? E.g.:

from osgeo import ogr
ifile = "./test.kml"
driver = ogr.GetDriverByName('KML')
src_ds = driver.Open(ifile)
src_layer = src_ds.GetLayerByIndex(0)
f = src_layer.GetFeature(1)
for i in range(f.GetFieldCount()):
print(i,f.GetFieldDefnRef(i))

So I am not sure what's going on? Any ideas?

System: Ubuntu 16.04 64-bit, Python 3.6.4 |Anaconda custom (64-bit), osgeo gdal 2.2.2

@gena
Copy link
Owner

gena commented Apr 6, 2018

It was a while when I last time used it, I've switched to native EE upload (shapefiles) because FT is too buggy.

The error probably occurs because KML has multiple layers, currently, ogr2ft.py works only for flat feature collections (single layer with multiple features). I will check if I can fix it, but it might be better to just do ogr2oger and upload shp

@matthiasdemuzere
Copy link
Author

I am not familiar with ogr2ogr. Do you refer to this package: https://github.com/wavded/ogr2ogr?

I have a whole lot of .kml files, which I would like to use in EE. As such I was looking for a way to automise the upload. That's why I tried ogr2ft.

Yet in your opinion ogr2ogr is preferable? Does it also work with .kml files? Would you have an example somewhere on how to do this?

Thanks!

@gena
Copy link
Owner

gena commented Apr 7, 2018

I mean GDAL, http://www.gdal.org/, you can install it on ubuntu via packages, e.g. http://www.sarasafavi.com/installing-gdalogr-on-ubuntu.html, ogr2ogr is a tool to convert between different GIS formats ... actually, this does not seem to work with your KML file, it's just too complicated (will probably work only with Google Earth). It is probably better to export this file to SHP via QGIS (merge all features into a single file), it seems to be able to open it. You can merge all features into a single homogeneous SHP file and upload it directly into EE.

image

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants