Skip to content

Commit

Permalink
push tag 0.4.9 for windows compatibility, get rid of shapely and fion…
Browse files Browse the repository at this point in the history
…a deps
  • Loading branch information
dgketchum committed May 10, 2018
1 parent 922e679 commit 318fb1e
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 19 deletions.
41 changes: 26 additions & 15 deletions landsat/google_download.py
Expand Up @@ -15,9 +15,11 @@
# =============================================================================================

import os
import re
import sys
import tarfile
import shutil
from lxml import html
from warnings import warn
from pandas import read_pickle, concat, Series
from datetime import datetime as dt
Expand All @@ -28,9 +30,6 @@
except ImportError:
from urlparse import urlparse, urlunparse

from fiona import open as fopen
from shapely.geometry import shape, Point

sys.path.append(os.path.dirname(__file__))

from landsat.update_landsat_metadata import update_metadata_lists, get_wrs_shapefiles
Expand Down Expand Up @@ -165,18 +164,30 @@ def _check_pr_lat_lon(self):
'or with both latitude and longitude'))

def _get_path_row(self):
distance = []
path_rows = []
lat_lon_point = Point(self.lon, self.lat)
with fopen(self.vectors, 'r') as src:
for feat in src:
geo = shape(feat['geometry'])
if lat_lon_point.within(geo):
center = geo.centroid
path_rows.append((feat['properties']['PATH'], feat['properties']['ROW']))
distance.append(center.distance(lat_lon_point))
self.p, self.r = path_rows[distance.index(min(distance))]
return None
"""
:param lat: Latitude float
:param lon: Longitude float
'convert_pr_to_ll' [path, row to coordinates]
:return: lat, lon tuple or path, row tuple
"""
conversion_type = 'convert_ll_to_pr'
base = 'https://landsat.usgs.gov/landsat/lat_long_converter/tools_latlong.php'
unk_number = 1508518830987

full_url = '{}?rs={}&rsargs[]={}&rsargs[]={}&rsargs[]=1&rsrnd={}'.format(base, conversion_type,
self.lat, self.lon,
unk_number)
r = get(full_url)
tree = html.fromstring(r.text)

# remember to view source html to build xpath
# i.e. inspect element > network > find GET with relevant PARAMS
# > go to GET URL > view source HTML
p_string = tree.xpath('//table/tr[1]/td[2]/text()')
self.p = int(re.search(r'\d+', p_string[0]).group())

r_string = tree.xpath('//table/tr[1]/td[4]/text()')
self.r = int(re.search(r'\d+', r_string[0]).group())

def _make_pymetric_ids(self):
metric_ids = []
Expand Down
4 changes: 2 additions & 2 deletions landsat/landsat_cli.py
Expand Up @@ -49,8 +49,8 @@ class TooFewInputsError(Exception):
# using pymetric_root and clear_scenes overrides all other arguments
# leave both blank to disable
pymetric_root: D:/pyMETRIC/root
clear_scenes: D:/pyMETRIC/misc/clear_scenes.txt
pymetric_root: D:/pyMETRIC/harney
clear_scenes: D:/pyMETRIC/harney/clear_scenes.txt
'''

CONFIG_PLACEMENT = os.path.dirname(__file__)
Expand Down
4 changes: 2 additions & 2 deletions setup.py
Expand Up @@ -32,7 +32,7 @@
with open('README.txt') as f:
readme = f.read()

tag = '0.4.89'
tag = '0.4.9'

setup(name='Landsat578',
version=tag,
Expand All @@ -56,7 +56,7 @@
download_url='https://github.com/{}/{}/archive/{}.tar.gz'.format('dgketchum', 'Landsat578', tag),
url='https://github.com/dgketchum',
test_suite='tests.test_suite.suite',
install_requires=['pyyaml', 'pandas', 'requests', 'fiona', 'shapely'],
install_requires=['pyyaml', 'pandas', 'requests', 'lxml'],
**setup_kwargs)


Expand Down

0 comments on commit 318fb1e

Please sign in to comment.