I'm trying to download a lot of datasets from different WFS URLs using ogr2ogr (and to an extent, owslib) in Python. My problem arises when I try to connect to a second WFS.
In my test code, I have first tried connecting to one WFS, then downloading the layer. This went fine. Afterwards, I replaced the URL with a second WFS URL. this time I got the error:
ConnectionError: ('Connection aborted.', ConnectionResetError(10054 An existing connection was forcibly closed by the remote host)).
In the first part of the code I try to extract the version number from the WFS:
import subprocess from owslib.wfs import WebFeatureService as wfsmod #connecting to second WFS using owslib url = 'http://wfs2-miljoegis.mim.dk/raastofpaahavet/ows? version=1.1.0&OUTPUTFORMAT=GML2' wfs = wfsmod(url) version = (wfs.identification.version) typenam ="rashavtilladelser20auktion"
The connection error happens at line "wfs = wfsmod(url)".
I also try to download a specific layer from this url using ogr2ogr/subprocesses:
if str(version) == "2.0.0": #layername is the specific title of the layer on the WFS server. layername = "&TYPENAMES="+layername else: layername = "&TYPENAME="+layername cmd = [r"C:\OSGeo4W\bin\ogr2ogr.exe", "-f", "ESRI Shapefile", r"C:\havplan\havplan_data\wfs_downloads\havbrugszoner.shp", "WFS:"+url+"version="+str(version) +"&request=GetFeature"+layername] subprocess.check_call(cmd)
as far as I understand, the error happens because I can only connect to one WFS at a time in Python. Is there some way to close the connection to a WFS in owslib and ogr2ogr using a command?