5 votos

¿Cómo puedo estar seguro de que he descargado todos los datos de un servicio WFS?

Necesito descargar todos los datos de un servicio WFS como archivos CSV y estar seguro de que he descargado todos los datos.

Estoy utilizando Python para descargar trozos de 20 000 filas a la vez:

import urllib.request
import os

download_folder = r'C:\Arenden\arter_test'

for start in range(0, 1000000, 20000): #I'm using 1000000 as stop since I dont know the row count of the service
    #For each 20 000 chunk create the url string
    req = "https://slwgeo.artdata.slu.se/geoserver/SLW/wms?service=WFS&version=1.1.0&request=GetFeature&typeName=SLW:AllSwedishOccurrences&maxFeatures=20000&startIndex={0}&outputFormat=csv".format(start)
    print(req)

    #And save the csv file
    file = os.path.join(download_folder, "allswedishoccurrences_{0}.csv".format(start))
    urllib.request.urlretrieve(req, file)

¿Hay alguna forma de saber cuándo parar? Simplemente sigue

https://slwgeo.artdata.slu.se/geoserver/SLW/wms?service=WFS&version=1.1.0&request=GetFeature&typeName=SLW:AllSwedishOccurrences&count=20000&startIndex=0&outputFormat=csv
https://slwgeo.artdata.slu.se/geoserver/SLW/wms?service=WFS&version=1.1.0&request=GetFeature&typeName=SLW:AllSwedishOccurrences&count=20000&startIndex=20000&outputFormat=csv
...

enter image description here

No hay duplicados en los archivos csv:

import pandas as pd

df1 = pd.read_csv(r'/home/bera/GIS/wrk/Species/csvfiles/allswedishoccurrences_20000-40000.csv')
#df1.shape
#(20000, 78)

df2 = pd.read_csv(r'/home/bera/GIS/wrk/Species/csvfiles/allswedishoccurrences_40000-60000.csv')
#df2.shape
#(20000, 78)

#df1.equals(df2)
#False

df3 = pd.concat([df1, df2])
#df3.shape
#(40000, 78)

df3 = df3.drop_duplicates()
#df3.shape
#(40000, 78)

0voto

Adam Ernst Puntos 6939

Utilizando https://slwgeo.artdata.slu.se/geoserver/SLW/wms?service=WFS&version=1.1.0&request=GetFeature&typeName=SLW:AllSwedishOccurrences&resultType=hits me da:

<wfs:FeatureCollection numberOfFeatures="25000" timeStamp="2022-05-03T12:00:14.842Z" xsi:schemaLocation="http://www.opengis.net/wfs http://slwgeo.artdata.slu.se:8080/geoserver/schemas/wfs/1.1.0/wfs.xsd http://www.svenskalifewatch.se/ http://slwgeo.artdata.slu.se:8080/geoserver/SLW/wfs?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=SLW%3AAllSwedishOccurrences">
<gml:featureMembers>

así que hay 25000 características en esa colección.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X