Giter VIP home page Giter VIP logo

gdal2tiles's Introduction

gdal2tiles

Documentation Status

A python library for generating map tiles inspired by gdal2tiles.py from GDAL project.

Dependancies

  • GDAL development header files, sometimes available as libgdal-dev or libgdal-devel packages.

Installation

To install gdal2tiles library you can use pip:

$ pip install gdal2tiles

Basic usage

import gdal2tiles

gdal2tiles.generate_tiles('/path/to/input_file', '/path/to/output_dir/')

You can also pass various keyword as optional keyword arguments to generate_tiles() function. For example

gdal2tiles.generate_tiles('input_file', 'output_dir/', nb_processes=2, zoom='7-9')

OR

options = {'zoom': (7, 9), 'resume': True}
gdal2tiles.generate_tiles('input_file', 'output_dir/', **options)

In general

gdal2tiles.generate_tiles(input_file, output_folder, **options)
Arguments:

input_file (str): Path to input file.

output_folder (str): Path to output folder.

options: Tile generation options.

Options:
profile (str): Tile cutting profile (mercator,geodetic,raster) - default
'mercator' (Google Maps compatible)
resampling (str): Resampling method (average,near,bilinear,cubic,cubicsp
line,lanczos,antialias) - default 'average'

s_srs: The spatial reference system used for the source input data

zoom: Zoom levels to render; format: '[int min, int max]',
'min-max' or 'int/str zoomlevel'.

tile_size (int): Size of tiles to render - default 256

resume (bool): Resume mode. Generate only missing files.

srcnodata: NODATA transparency value to assign to the input data

tmscompatible (bool): When using the geodetic profile, specifies the base
resolution as 0.703125 or 2 tiles at zoom level 0.

verbose (bool): Print status messages to stdout

kml (bool): Generate KML for Google Earth - default for 'geodetic'
profile and 'raster' in EPSG:4326. For a dataset with different projection use with caution!

url (str): URL address where the generated tiles are going to be published

webviewer (str): Web viewer to generate (all,google,openlayers,none) -
default 'all'

title (str): Title of the map

copyright (str): Copyright for the map

googlekey (str): Google Maps API key from
http://code.google.com/apis/maps/signup.html

bingkey (str): Bing Maps API key from https://www.bingmapsportal.com/

nb_processes (int): Number of processes to use for tiling.

gdal2tiles's People

Contributors

endast avatar guillermoom avatar kkudrynski avatar machakux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gdal2tiles's Issues

AttributeError: module 'gdal2tiles' has no attribute 'generate_tiles'

  • gdal2tiles version: 0.1.5
  • GDAL version:2.3.1
  • Python version: 3.6
  • Operating System: Linux Ubuntu 18.04

Description

generate_tiles function is missing. I am using pycharm, the IDE is referencing to the right function but calling the script within a ipython script in virtual env it is missing.

What I Did

import gdal2tiles
gdal2tiles.generate_tiles(map_file, tile_dir, zoom='3-12')

Tile generation using the GPU

Hi,

The tile generation is a very CPU intensive operation, we're usually generating tiles up to the level 24 and it typically lasts half an hour or more using all CPU cores.

I'm wondering if it would be possible to speed up the process by using somehow the GPU?

Thanks in advance

generate_tiles Ignores `kml` setting

  • gdal2tiles version: 0.1.9
  • GDAL version: 3.0.2
  • Python version: 3.6.13
  • Operating System: Windows 10

Description

I am trying to generate tiles, but do not need .kml files.

What I Did

I configured my options as:

source_path = "full_image_0.png"
destination_path = "./own/"
options = {'zoom': 3,
            'nb_processes': 1,
            'tile_size': 256,
            's_srs':'EPSG:4326',
            'verbose': True,
            'profile': 'raster',
            'kml': False
        }

and then called:

gdal2tiles.generate_tiles(source_path, destination_path,**options)

The result was appropriately generated tiles accompanied by .kml files:

https://i.imgur.com/mzBDm9H.png

I traced your code but was unable to check where the value of kml changes from my input to True using print(), probably due to the multiprocessor threads.

Unnecessary text output

  • gdal2tiles version: 0.1.2
  • GDAL version: all
  • Python version: all
  • Operating System: all

The library writes things like process progess to system standard output which in most cases it is not desired.

'TileJobInfo' object has no attribute 'tilesize'

  • gdal2tiles version: 0.1.7
  • GDAL version: 2.4.0
  • Python version: 3.8
  • Operating System: Ubuntu18.04

Description

Hello! I'm generating a superoverlay for kml document. And there's an attribute error that shows up. I assume its a typing mistake.

What I Did

gdal2tiles.generate_tiles(src_img, dest, profile='raster', kml=True)

And the the traceback:

Traceback (most recent call last):
  File "/opt/project/_test_kmz_gen.py", line 111, in _test_correlation_report
    create_super_overlay(ground_overlay_fp, superoverlay_dest)
  File "/opt/project/report/imageutils.py", line 542, in create_super_overlay
    gdal2tiles.generate_tiles(src_img, dest, profile='raster', kml=True)
  File "/code/venv/lib/python3.8/site-packages/gdal2tiles/gdal2tiles.py", line 2940, in generate_tiles
    single_threaded_tiling(input_file, output_folder, **options)
  File "/code/venv/lib/python3.8/site-packages/gdal2tiles/gdal2tiles.py", line 2826, in single_threaded_tiling
    create_base_tile(conf, tile_detail)
  File "/code/venv/lib/python3.8/site-packages/gdal2tiles/gdal2tiles.py", line 1046, in create_base_tile
    f.write(generate_kml(
  File "/code/venv/lib/python3.8/site-packages/gdal2tiles/gdal2tiles.py", line 541, in generate_kml
    args['south'], args['west'], args['north'], args['east'] = tileswne(tx, ty, tz)
  File "/code/venv/lib/python3.8/site-packages/gdal2tiles/gdal2tiles.py", line 2787, in rastertileswne
    west = tile_job_info.out_geo_trans[0] + x * tile_job_info.tilesize * pixelsizex
AttributeError: 'TileJobInfo' object has no attribute 'tilesize'

TileJobInfo.tile_size is the correct attribute.

Tiles not visible on map

  • gdal2tiles version: Using geolambda
  • GDAL version: Using geolambda
  • Python version: 3.7
  • Operating System: Run on AWS Lambda

Description

Should be straightforward but I can't manage to make it work. I can't see the tiles generated on the map that the function produces. I attached to output to this message.
Any idea what is wrong or what I don't understand?
Thanks

What I Did

gdal2tiles.generate_tiles(input, f"output", nb_processes=1, zoom='24-27')
`
[s31.zip](https://github.com/tehamalab/gdal2tiles/files/7437079/s31.zip)
`

gdal2tiles gets stuck

  • gdal2tiles version:
  • GDAL version: 2.4.2
  • Python version: 3.6.9
  • Operating System: Ubuntu 18.04 LTS

Description

I am trying to generate tiles from raster (GeoTiff). The process randomly stops. I use parallel processing to generate tiles. The memory used during generation shoots up a lot.

What I Did

gdal2tiles.generate_tiles()

pip install fails on Windows OS

  • gdal2tiles version: latest
  • Python version: 3.8.6
  • Operating System: Windows 10

Description

I tried

pip install gdal2tiles

Stacktrace

C:\Users\STUDIUM>pip install gdal2tiles
Defaulting to user installation because normal site-packages is not writeable
Collecting gdal2tiles
  Using cached gdal2tiles-0.1.9.tar.gz (201 kB)
Collecting pygdal
  Using cached pygdal-3.3.1.7.tar.gz (490 kB)
    ERROR: Command errored out with exit status 1:
     command: 'c:\program files\python38\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\STUDIUM\\AppData\\Local\\Temp\\pip-install-66zjavqf\\pygdal\\setup.py'"'"'; __file__='"'"'C:\\Users\\STUDIUM\\AppData\\Local\\Temp\\pip-install-66zjavqf\\pygdal\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base 'C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd'
         cwd: C:\Users\STUDIUM\AppData\Local\Temp\pip-install-66zjavqf\pygdal\
    Complete output (8 lines):
    running egg_info
    creating C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd\pygdal.egg-info
    writing C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd\pygdal.egg-info\PKG-INFO
    writing dependency_links to C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd\pygdal.egg-info\dependency_links.txt
    writing requirements to C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd\pygdal.egg-info\requires.txt
    writing top-level names to C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd\pygdal.egg-info\top_level.txt
    writing manifest file 'C:\Users\STUDIUM\AppData\Local\Temp\pip-pip-egg-info-6sl7etpd\pygdal.egg-info\SOURCES.txt'
    error: [WinError 2] The system cannot find the file specified
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

gdal-config --version gives GDAL version that is missing on pypi

  • gdal2tiles version: latest pypi
  • GDAL version: 2.1.2
  • Python version: py3
  • Operating System: debian stretch

Description

gdal-config seems to be giving a bad pypi gdal version?

What I Did

$ apt install -y libgdal-dev
$ pip install gdal2tiles

And then I see:

(.venv) ➜ ~ (master) ✗ pip install gdal2tiles
Collecting gdal2tiles
Using cached https://files.pythonhosted.org/packages/1e/5d/d75fd3c1a6e748c93af9cc5bab21c26d783cadc8073a4621bde10fe49b45/gdal2tiles-0.1.5.tar.gz
ERROR: Could not find a version that satisfies the requirement GDAL==2.1.2 (from gdal2tiles) (from versions: 1.5.0, 1.5.2, 1.6.0, 1.6.1, 1.7.0, 1.7.1, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.11.0, 1.11.1, 1.11.2, 2.0.0, 2.0.1, 2.1.0, 2.1.3, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.3.0, 2.3.1, 2.3.2, 2.3.3, 2.4.0, 2.4.2, 2.4.3, 3.0.0, 3.0.1, 3.0.2)
ERROR: No matching distribution found for GDAL==2.1.2 (from gdal2tiles)

So, gdal-config --version gives back 2.1.2 and that doesn't seem to exist on the pypi release log over at https://pypi.org/project/GDAL/#history. I can hotfix to get an install working but it seems like the assumption that gdal-config gives a working version for install leads to this issue.

Adding exclusion flag --exclude -x

  • gdal2tiles version: 0.1.9
  • GDAL version: 3.3.1
  • Python version: 3.8
  • Operating System: Windows

Description

Attempting to use gdal2tiles to generate tiles.

Unable to exclude the generation of blank tiles, this would normally be done using the --exclude or -x flags

What I Did

            gdal2tiles.generate_tiles(source_path, destination_path,
                                      zoom=[18, 20],
                                      nb_processes=4,
                                      resume=True,
                                      tile_size=256,
                                      srcnodata=0,
                                      verbose=True,
                                      webviewer=all
                                      )

Adding or enabling one of the following would be very helpful

exclude=True
exclude="--exclude"
exclude="-x"
flag="-x"

If I've misunderstood how the exclude works please let me know.

Please add dependency on Python 3.9 in README

  • gdal2tiles version: Version: 0.1.9
  • GDAL version:
  • Python version: >=3.9
  • Operating System: Linux

Description

New users should know that this only works on python 3.9 ATM

What I Did

I tried installing this library in python 3.11 - an arror appears saying :

    132 | Py_DEPRECATED(3.9) PyAPI_FUNC(void) PyEval_InitThreads(void);
            |                                     ^~~~~~~~~~~~~~~~~~
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

the solution is to downgrade python ATM. Please update the README.

undefined symbol error

  • gdal2tiles version: 0.1.5
  • GDAL version: 2.3.1
  • Python version: 3.6
  • Operating System: Centos 7.4

Description

I am getting this error :

ImportError: /home/cisarge/temp.cisarge.com/data-vis/data-vis-libs/lib/python3.6/site-packages/osgeo/_gdal.cpython-36m-x86_64-linux-gnu.so: undefined symbol: GDALDatasetTestCapability

S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE.zip zip file type support

  • gdal2tiles version: gdal2tiles.py --version
    GDAL 3.4.1, released 2021/12/27

  • GDAL version:

  • Python version: python3 --version
    Python 3.10.12

  • Operating System:

lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.4 LTS
Release: 22.04
Codename: jammy

Description

Describe what you were trying to get done.
Tell us what happened, what went wrong, and what you expected to happen.

What I Did

Paste the command(s) you ran and the output.
If there was a crash, please include the traceback here.gdal2tiles.py: error: Input file 

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import gdal2tiles
>>> options = {'zoom': (7, 9), 'resume': True}
>>> gdal2tiles.generate_tiles('/home/jzhao/S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE.zip', '/home/jzhao/tiles/', **options)
Usage: gdal2tiles.py [options] input_file [output]

gdal2tiles.py: error: Input file '/home/jzhao/S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE.zip' has no raster band



unzipped files:

 unzip S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE.zip
Archive:  S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE.zip
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/DATASTRIP/DS_2APS_20240222T220752_S20240222T160550/MTD_DS.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/DATASTRIP/DS_2APS_20240222T220752_S20240222T160550/QI_DATA/FORMAT_CORRECTNESS.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/DATASTRIP/DS_2APS_20240222T220752_S20240222T160550/QI_DATA/GENERAL_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/DATASTRIP/DS_2APS_20240222T220752_S20240222T160550/QI_DATA/GEOMETRIC_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/DATASTRIP/DS_2APS_20240222T220752_S20240222T160550/QI_DATA/RADIOMETRIC_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/DATASTRIP/DS_2APS_20240222T220752_S20240222T160550/QI_DATA/SENSOR_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/AUX_DATA/AUX_CAMSFO
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/AUX_DATA/AUX_ECMWFT
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_AOT_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_B02_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_B03_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_B04_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_B08_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_TCI_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R10m/T17TPH_20240222T160251_WVP_10m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_AOT_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B01_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B02_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B03_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B04_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B05_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B06_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B07_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B11_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B12_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_B8A_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_SCL_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_TCI_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R20m/T17TPH_20240222T160251_WVP_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_AOT_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B01_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B02_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B03_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B04_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B05_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B06_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B07_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B09_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B11_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B12_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_B8A_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_SCL_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_TCI_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/IMG_DATA/R60m/T17TPH_20240222T160251_WVP_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/MTD_TL.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/FORMAT_CORRECTNESS.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/GENERAL_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/GEOMETRIC_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/L2A_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_CLASSI_B00.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_CLDPRB_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_CLDPRB_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B01.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B02.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B03.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B04.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B05.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B06.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B07.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B08.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B09.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B10.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B11.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B12.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_DETFOO_B8A.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B01.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B02.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B03.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B04.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B05.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B06.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B07.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B08.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B09.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B10.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B11.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B12.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_QUALIT_B8A.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_SNWPRB_20m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/MSK_SNWPRB_60m.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/SENSOR_QUALITY.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/GRANULE/L2A_T17TPH_A045282_20240222T160550/QI_DATA/T17TPH_20240222T160251_PVI.jp2
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/HTML/UserProduct_index.html
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/HTML/UserProduct_index.xsl
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/HTML/banner_1.png
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/HTML/banner_2.png
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/HTML/banner_3.png
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/HTML/star_bg.jpg
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/INSPIRE.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/MTD_MSIL2A.xml
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752-ql.jpg
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/manifest.safe
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/rep_info/S2_PDI_Level-2A_Datastrip_Metadata.xsd
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/rep_info/S2_PDI_Level-2A_Tile_Metadata.xsd
 extracting: S2A_MSIL2A_20240222T160251_N0510_R097_T17TPH_20240222T220752.SAFE/rep_info/S2_User_Product_Level-2A_Metadata.xsd

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.