Sentinel-1 Data opened with rasterio has no Affine/Transform/CRS
Rasterio can read and write GCPs and warp with them since version 1.0a3. src.crs
returns nothing to make it clear that there is no coordinate reference system associated with the file's affine transformation matrix. If you want to see the file's ground control points and their CRS, do this (one of the project's test files shown for example).
>>> import rasterio
>>> dst = rasterio.open('tests/data/white-gemini-iv.vrt')
>>> dst.crs
CRS({})
>>> gcps, gcp_crs = dst.gcps
>>> gcp_crs
CRS({'init': 'epsg:32618'})
The problem was that the tiff had a "GCP Projection" (Ground Control Point). The points shown in the projection when I called gdalinfo match points in the raster to points in the specified coordinate system.
For example:
GCP[ 0]: Id=1, Info=
(0,0) -> (-0.0586869021480695,52.8786492861072,82.5438837502152)
Indicates that the top left pixel has lng/lat coordinates -0.0586869021480695,52.8786492861072 and an altitude of 82.5438837502152.
In order for rasterio to interpret the projection it needed to be converted using gdalwarp. I warped the image to ESPG:4326 with the command:
gdalwarp -r bilinear -t_srs EPSG:4326 s1a-iw-grd-vv-20160313t174940-20160313t175005-010354-00f569-001.tif crs.tif
Where crs.tif is the output image.