Ejemplo n.º 1
0
import base64
import re
import io
import PIL
from PIL import Image
from PIL.Image import Image as PILImage
from PIL.ExifTags import TAGS, GPSTAGS
from typing import Tuple, IO, AnyStr
from dataclasses import dataclass
from geoapi.exceptions import InvalidEXIFData
from geoapi.log import logging

logger = logging.getLogger(__name__)


@dataclass
class ImageData:
    thumb: PILImage
    resized: PILImage
    coordinates: Tuple[float, float]


@dataclass
class ImageOverlay:
    thumb: PILImage
    original: PILImage


class ImageService:

    THUMBSIZE = (100, 100)
Ejemplo n.º 2
0
from geoapi.celery_app import app
from geoapi.exceptions import InvalidCoordinateReferenceSystem, MissingServiceAccount
from geoapi.models import User, ObservableDataProject, Task
from geoapi.utils.agave import AgaveUtils, get_system_users, get_metadata_using_service_account
from geoapi.log import logging
from geoapi.services.features import FeaturesService
from geoapi.services.imports import ImportsService
from geoapi.services.vectors import SHAPEFILE_FILE_ADDITIONAL_FILES
import geoapi.services.point_cloud as pointcloud
from geoapi.tasks.lidar import convert_to_potree, check_point_cloud, get_point_cloud_info
from geoapi.db import db_session
from geoapi.services.notifications import NotificationsService
from geoapi.services.users import UserService

logger = logging.getLogger(__file__)


def _parse_rapid_geolocation(loc):
    coords = loc[0]
    lat = coords["latitude"]
    lon = coords["longitude"]
    return lat, lon


def is_member_of_rapp_project_folder(path):
    """
    Check to see if path is contained within RApp project folder
    :param path: str
    """
    return "/RApp/" in path