-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathland_type.py
74 lines (52 loc) · 1.72 KB
/
land_type.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import numpy
import json
import requests
import progressbar
import multiprocessing as mp
OCEAN_MAP = []
def is_ocean(lat, long, session=requests.Session()):
url = "http://api.geonames.org/oceanJSON"
req_params = {
'lat': lat,
'lng': long,
'username': "40i2"
}
r = session.get(url, params=req_params)
ret = r.json()
b = True if "ocean" in ret else False
return b
def load_map():
global OCEAN_MAP
with open("ocean-coordinates", "r") as f:
OCEAN_MAP = [ c.strip() for c in f.readlines()]
def is_ocean_local(lat, long):
st = "{},{}".format(lat, long)
if st in OCEAN_MAP:
return True
return False
if __name__ == "__main__":
coords = []
# NOT SO BAD
# for lat in numpy.arange(41.131386, 41.208026, 0.0018):
# for lon in numpy.arange(-8.712680, -8.558663, 0.0025):
for lat in numpy.arange(41.140385968610644, 41.18538597598672, 0.0010):
for lon in numpy.arange(-8.687680028378963, -8.5601800493896, 0.0010):
coords.append((lat, lon))
session = requests.Session()
#with open("data.json", "r") as f:
# data = json.load(f)
data = {}
# Step 1: Init multiprocessing.Pool()
with open("ocean-coordinates", "a") as f:
for lat, long in progressbar.progressbar(coords):
st = "{},{}".format(lat, long)
if st in data:
print("Already know: ", st, " ", data[st])
else:
#b = pool.apply_async(is_ocean, args=(lat,lon,session))
b = is_ocean(lat, long, session)
data[st] = b
#print("Found", st, "-", b)
if b:
f.write(st+"\n")
f.flush()