¿Es posible llamar a XArray Open_MFDataSet en un servidor FTP? -- python campo con ftp campo con python-xarray campo con ftplib camp Relacionados El problema

Is it possible to call xarray open_mfdataset on an FTP server?


1
vote

problema

Español

Estoy intentando descargar un producto diario de reanálisis de la temperatura del océano ( Glorys2v4 de CMEMS ) para el Atlántico Norte, pero la única opción de descarga es el acceso FTP con archivos globales grandes (2GB). ¿Es posible usar Open_MFDataSet en un directorio FTP para tomar el subconjunto que necesito sin descargar todos los datos en mi máquina local? Si es así, ¿cómo podría configurar el camino o la URL?

Actualmente estoy conectando a la FTP y luego intentando darle a XArray la URL, pero está interpretando la URL como una ruta en mi directorio de trabajo. P.ej. Si intentaba abrir solo un archivo para el 1 de enero de 2000:

  ftp = FTP("my.cmems-du.eu", username, password) sample_directory = '/Core/GLOBAL_REANALYSIS_PHY_001_031/global-reanalysis-phy-001-031-grepv2-daily/2000/01' ftp.cwd (sample_directory)  ftp_path = 'ftp://my.cmems-du.eu/Core/GLOBAL_REANALYSIS_PHY_001_031/global-reanalysis-phy-001-031-grepv2-daily/2000/01/grepv2_daily_20000101.nc' ds = xr.open_dataset (ftp_path)   

Esto produce un FILENOTFOUNDERROR: [Errno 2] No such file or directory: b'U:\Documents\conda_dir\ftp:\my.cmems-du.eu\Core\GLOBAL_REANALYSIS_PHY_001_031\global-reanalysis-phy-001-031-grepv2-daily\2000\01\grepv2_daily_20000101.nc' donde 'u: documents condA_dir' es mi directorio de trabajo.

Original en ingles

I'm attempting to download a daily ocean temperature reanalysis product (GLORYS2V4 from CMEMS) for the North Atlantic, but the only download option is FTP access with large (2GB) global files. Is it possible to use open_mfdataset on an FTP directory to take the subset I need without downloading all the data to my local machine? If so, how would I set up the path or url?

Currently I'm connecting to the FTP and then trying to give xarray the url, but it's interpreting the url as a path in my working directory. E.g. if I were trying to open just one file for January 1, 2000:

ftp = FTP("my.cmems-du.eu", username, password) sample_directory = '/Core/GLOBAL_REANALYSIS_PHY_001_031/global-reanalysis-phy-001-031-grepv2-daily/2000/01' ftp.cwd (sample_directory)  ftp_path = 'ftp://my.cmems-du.eu/Core/GLOBAL_REANALYSIS_PHY_001_031/global-reanalysis-phy-001-031-grepv2-daily/2000/01/grepv2_daily_20000101.nc' ds = xr.open_dataset (ftp_path) 

This yields a FileNotFoundError: [Errno 2] No such file or directory: b'U:\\Documents\\conda_dir\\ftp:\\my.cmems-du.eu\\Core\\GLOBAL_REANALYSIS_PHY_001_031\\global-reanalysis-phy-001-031-grepv2-daily\\2000\\01\\grepv2_daily_20000101.nc' where 'U:\Documents\conda_dir' is my working directory.

           

Lista de respuestas

0
 
vote

generalmente no. No sé ese formato de archivo en particular. Incluso si encuentra una biblioteca que puede trabajar con ese formato de archivo específico y puede funcionar con el almacenamiento remoto FTP, apenas puede filtrar los contenidos sin descargar todo el archivo de todos modos.

La única excepción puede ser, si el formato tiene algún tipo de índice, que puede descargar la biblioteca, encontrar qué partes del archivo necesita, y luego descargar solo esas partes. Por ejemplo, de esta manera, puede descargar solo algunos archivos de un archivo zip remoto . Pero con la mayoría de los formatos de archivo, esto no es posible.

 

Generally not. I do not know that particular file format. Even if you find a library that can work with that specific file format and can work with remote FTP storage, it can hardly filter the contents without downloading the whole file anyway.

The only exception can be, if the format has some kind of an index, which the library can download, find what parts of the file it needs, and then download only those parts. For example, this way you can download only some files from a remote ZIP archive. But with most file formats this is not possible.

 
 
0
 
vote

No podrá acceder a los datos de CMEMS a través de FTP utilizando XArray. Si solo desea extraer un subconjunto espacial de los datos, es mejor usar el servicio de WEKEO, a la que se puede acceder a Python. Lea aquí aquí: https://wekeo.eu/web/guest/home . < / p>

También puede usar Motuclient: https: //marine.copernicus.eu/faq/what-are-the-motu-and-python-requirements/ .

 

You will not be able to access CMEMS data via ftp using xarray. If you only want to extract a spatial subset of the data, it is best to use the Wekeo service, which can be accessed through Python. Read about it here: https://wekeo.eu/web/guest/home.

You can also use motuclient: https://marine.copernicus.eu/faq/what-are-the-motu-and-python-requirements/.

 
 

Relacionados problema

0  La captura de errores de FTPLIB no funciona al realizar el directorio de listado (Python 3)  ( Catching ftplib errors doesnt work when listing directory python 3 ) 
Estoy usando FTPLIB con Python 3.6.9 para enumerar archivos nuevos en un servidor y descargarlos. Este servidor rompe regularmente la conexión con cualquiera ...

0  Error de Python FTPLIB GetAdrinfo con URL analizada  ( Python ftplib getaddrinfo error with parsed url ) 
He creado una función que se supone que debe descargar archivos de este en particular FTP Serwer: ftp://cddis.gsfc.nasa.gov/gnss/products/bias/2013 Donde so...

3  ¿Cómo capturar errores FTP? E.G., Socket.Error: [Errno 10060]  ( How to catch ftp errors e g socket error errno 10060 ) 
Estoy usando el módulo FTPLIB para cargar archivos: files = [ a.txt , b.txt , c.txt ] s = ftplib.FTP(ftp_server , ftp_user , ftp_pw) # Connect to ...

1  Pregunta FTP y PYTHON  ( Ftp and python question ) 
¿Puede alguien ayudarme? por qué no funciona import ftplib import os def readList(request): machine=[] login=[] password=[] ...

44  Diferencias de tamaño de archivo después de copiar un archivo a un servidor Vía FTP  ( File size differences after copying a file to a server v%c3%ada ftp ) 
He creado un script PHP para actualizar un servidor web que está vivo dentro de un directorio local. Estoy migrando el guión en Python. Funciona bien en su ma...

3  Uso de FTPLIB para cargar una página HTML 200KB  ( Using ftplib to upload a 200kb html page ) 
Estoy usando el siguiente código para cargar un archivo HTML en mi sitio web, sin embargo, al subirlo parece que le faltan algunos datos ... Mi contenido es...

1  ¿Cómo verificar si el inicio de sesión FTP tiene éxito o no en Python FTPLIB?  ( How to check whether ftp login is successful or not in python ftplib ) 
Estoy desarrollando un cliente FTP usando Python FTPLIB. Aquí está mi código: def connectftp(): ftp=ftplib.FTP('hostname') print(ftp.getwelcome()) ftp.logi...

0  Python ftplib retrbinary (), archivos que no se descargan completamente  ( Python ftplib retrbinary files not downloading completely ) 
Extracto de código: file = open("D:\DownloadFolder\test.jpg", "wb") def callback(data): file.write(data) connect.retrbinary('RETR cover.jpg', callback...

30  Python-FTP Descargar todos los archivos en el directorio  ( Python ftp download all files in directory ) 
Estoy armando un script para descargar todos los archivos de un directorio a través de FTP. Hasta ahora, he logrado conectar y buscar un archivo, pero parece ...

1  Extraer archivos comprimidos de la extensión .gz al descargarlos desde el servidor FTP [duplicado]  ( Extracting compressed files from gz extension while downloading them from ftp s ) 
Esta pregunta ya tiene una respuesta aquí : Recupere los datos del archivo GZ en el servidor FTP sin...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos