Fiona throws no dataset found when attempting to read a KMZ file

I'm afraid that in fiona there is not supported any "kmz" driver.

>>>import fiona
>>>fiona.supported_drivers
{'ESRI Shapefile': 'raw', 'SUA': 'r', 'ARCGEN': 'r', 'PDS': 'r', 'GeoJSON': 'rw', 
'Idrisi': 'r', 'GPX': 'raw', 'SEGY': 'r', 'BNA': 'raw', 'GMT': 'raw', 'AeronavFAA': 'r', 
'GPSTrackMaker': 'raw', 'DGN': 'raw', 'PCIDSK': 'r', 'MapInfo File': 'raw', 'DXF': 'raw'}

I suggest you download the data in geospatial vector or raster format, a quick look shows the sea ice extent is available in GeoTIFF and shapefile format

If you want to do things the hard way and get some data out of the KMZ, read on.


GDAL/OGR (2.1.2) can't read** that particular KMZ, which means fiona, geopandas and probably rasterio can't either.

Amongst other stuff (html popups and icons), that KMZ is full of GroundOverlay elements pointing at .png files.

You could extract the pngs from the KMZ (it's just a zip file) and georeference them.

For example:

gdal_translate -of VRT -a_srs EPSG:4326 -gcp 0 0 -180 90 -gcp 600 0 180 90 -gcp 600 900 180 -90 NSIDC_SepSeaIceExtent.kmz_FILES/images/goddard/199709_extn_google_v2.1_goddard.png 199709.vrt

Here is a screenshot of 199709.vrt overlaid on the NASA Blue Marble dataset, with sea ice extent shown in bright green (custom rendering in QGIS, just to highlight the data).

enter image description here


** Actually GDAL/OGR can read the bounding boxes of the GroundOverlay elements, but that's not going to help you much... They cover the world.

ogrinfo NSIDC_SepSeaIceExtent.kmz data
ERROR 1: ERROR parsing kml Style: No id
INFO: Open of `NSIDC_SepSeaIceExtent.kmz'
      using driver `LIBKML' successful.

Layer name: Data
Geometry: Unknown (any)
Feature Count: 38
Extent: (-180.000000, -90.000000) - (180.000000, 90.000000)
Layer SRS WKT:
<snip>
OGRFeature(Data):1
  Name (String) = 197909 
  description (String) = (null)
  timestamp (DateTime) = (null)
  begin (DateTime) = 1979/01/01 00:00:00
  end (DateTime) = 1980/01/01 00:00:00
  <snip>
  icon (String) = images/goddard/197909_extn_google_v2.1_goddard.png
  POLYGON Z ((180 90 0,180 -90 0,-180 -90 0,-180 90 0,180 90 0))
<snip>