
    ڧg	                     b    d dl Z d dlmZ d dlmZmZmZ ddlmZ ddl	m
Z
  G d de          ZdS )	    N)Path)CallableOptionalUnion   )ImageFolder)download_and_extract_archivec                        e Zd ZdZ	 	 	 ddeeef         dee         dee         de	ddf
 fd	Z
defd
Zde	fdZddZ xZS )EuroSATa<  RGB version of the `EuroSAT <https://github.com/phelber/eurosat>`_ Dataset.

    For the MS version of the dataset, see
    `TorchGeo <https://torchgeo.readthedocs.io/en/stable/api/datasets.html#eurosat>`__.

    Args:
        root (str or ``pathlib.Path``): Root directory of dataset where ``root/eurosat`` exists.
        transform (callable, optional): A function/transform that takes in a PIL image
            and returns a transformed version. E.g, ``transforms.RandomCrop``
        target_transform (callable, optional): A function/transform that takes in the
            target and transforms it.
        download (bool, optional): If True, downloads the dataset from the internet and
            puts it in root directory. If dataset is already downloaded, it is not
            downloaded again. Default is False.
    NFroot	transformtarget_transformdownloadreturnc                    t           j                            |          | _        t           j                            | j        d          | _        t           j                            | j        d          | _        |r|                                  |                                 st          d          t                                          | j        ||           t           j                            |          | _        d S )Neurosat2750z;Dataset not found. You can use download=True to download it)r   r   )ospath
expanduserr   join_base_folder_data_folderr   _check_existsRuntimeErrorsuper__init__)selfr   r   r   r   	__class__s        X/var/www/html/ai-engine/env/lib/python3.11/site-packages/torchvision/datasets/eurosat.pyr   zEuroSAT.__init__   s     G&&t,,	GLLI>>GLL):FCC 	MMOOO!!## 	^\]]]*iRbcccG&&t,,			    c                 *    t          | j                  S N)lensamplesr   s    r    __len__zEuroSAT.__len__.   s    4<   r!   c                 J    t           j                            | j                  S r#   )r   r   existsr   r&   s    r    r   zEuroSAT._check_exists1   s    w~~d/000r!   c                     |                                  rd S t          j        | j        d           t	          d| j        d           d S )NT)exist_okzmhttps://huggingface.co/datasets/torchgeo/eurosat/resolve/c877bcd43f099cd0196738f714544e355477f3fd/EuroSAT.zip c8fa014336c82ac7804f0398fcb19387)download_rootmd5)r   r   makedirsr   r	   r&   s    r    r   zEuroSAT.download4   s`     	F
D%5555${+2	
 	
 	
 	
 	
 	
r!   )NNF)r   N)__name__
__module____qualname____doc__r   strr   r   r   boolr   intr'   r   r   __classcell__)r   s   @r    r   r   	   s         & )-/3- -CI- H%- #8,	-
 - 
- - - - - -(! ! ! ! !1t 1 1 1 1

 

 

 

 

 

 

 

r!   r   )r   pathlibr   typingr   r   r   folderr   utilsr	   r    r!   r    <module>r=      s    				       , , , , , , , , , ,       / / / / / /5
 5
 5
 5
 5
k 5
 5
 5
 5
 5
r!   