bowshock 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,49 @@
1
+ module Bowshock
2
+ module Earth
3
+ def imagery(object)
4
+ base_url = "https://api.nasa.gov/planetary/earth/imagery/?"
5
+
6
+ if object["lon"] and object["lat"]
7
+ base_url += "lon=#{object["lon"].to_s}&lat=#{object["lat"].to_s}&"
8
+ end
9
+
10
+ if object["date"]
11
+ base_url += "date=#{Helpers.vali_date(object["date"])}&"
12
+ end
13
+
14
+ if object["cloud_score"]
15
+ base_url += "cloud_score=#{object["cloud_score"]}&"
16
+ end
17
+
18
+ if object["dim"]
19
+ base_url += "dim=#{object["dim"]}&"
20
+ end
21
+
22
+ req_url = "#{base_url}api_key=#{Helpers.nasa_api_key}"
23
+ Helpers.getJson(req_url, "GET")
24
+ end
25
+
26
+ module_function :imagery
27
+
28
+ def assets(object)
29
+ base_url = "https://api.nasa.gov/planetary/earth/assets?"
30
+
31
+ if object["lon"] && object["lat"]
32
+ base_url += "lon=#{object["lon"].to_s}&lat=#{object["lat"].to_s}&"
33
+ end
34
+
35
+ if object["begin"]
36
+ base_url += "begin=#{Helpers.vali_date(object["begin"])}&"
37
+ end
38
+
39
+ if object["end"]
40
+ base_url += "end=#{Helpers.vali_date(object["end"])}&"
41
+ end
42
+
43
+ req_url = "#{base_url}api_key=#{Helpers.nasa_api_key}"
44
+ Helpers.getJson(req_url, "GET")
45
+ end
46
+
47
+ module_function :assets
48
+ end
49
+ end
@@ -0,0 +1,102 @@
1
+ module Bowshock
2
+ module Eonet
3
+ def events(object=nil)
4
+ base_url = "https://eonet.sci.gsfc.nasa.gov/api/v2.1/events?"
5
+
6
+ if object == nil
7
+ return Helpers.getJson(base_url.slice(0, -1), "GET")
8
+ end
9
+
10
+ if object["source"]
11
+ base_url += "source=#{object["source"]}&"
12
+ end
13
+
14
+ if object["status"]
15
+ base_url += "status=#{object["status"]}&"
16
+ end
17
+
18
+ if object["limit"]
19
+ base_url += "limit=#{object["limit"].to_s}&"
20
+ end
21
+
22
+ if object["days"]
23
+ base_url += "days=#{object["days"].to_s}&"
24
+ end
25
+
26
+ len = base_url.length() -1
27
+ Helpers.getJson(base_url.slice(0..len), "GET")
28
+ end
29
+
30
+ module_function :events
31
+
32
+ def layers(id)
33
+ base_url = "https://eonet.sci.gsfc.nasa.gov/api/v2.1/layers/#{id.to_s}"
34
+ Helpers.getJson(base_url, "GET");
35
+ end
36
+
37
+ module_function :layers
38
+
39
+ def categories(object =nil)
40
+ base_url = "https://eonet.sci.gsfc.nasa.gov/api/v2.1/categories/"
41
+
42
+ if object == nil
43
+ len = base_url.length() -2
44
+ return Helpers.getJson(base_url.slice(0..len), "GET");
45
+ end
46
+
47
+ base_url += "#{object["id"].to_s}?"
48
+
49
+ if object["source"]
50
+ base_url += "source=#{object["source"]}&"
51
+ end
52
+
53
+ if object["status"]
54
+ base_url += "status=#{object["status"]}&"
55
+ end
56
+
57
+ if object["limit"]
58
+ base_url += "limit=#{object["limit"].to_s}&"
59
+ end
60
+
61
+ if object["days"]
62
+ base_url += "days=#{object["days"].to_s}&"
63
+ end
64
+
65
+ len = base_url.length() -1
66
+ Helpers.getJson(base_url.slice(0..len), "GET")
67
+ end
68
+ module_function :categories
69
+
70
+ def sources(object = nil)
71
+ base_url = "https://eonet.sci.gsfc.nasa.gov/api/v2.1/sources/"
72
+
73
+ if object == nil
74
+ len = base_url.length() -2
75
+ return Helpers.getJson(base_url.slice(0..len), "GET");
76
+ end
77
+
78
+ base_url += "#{object["id"].to_s}?"
79
+
80
+ if object["source"]
81
+ base_url += "source=#{object["source"]}&"
82
+ end
83
+
84
+ if object["status"]
85
+ base_url += "status=#{object["status"]}&"
86
+ end
87
+
88
+ if object["limit"]
89
+ base_url += "limit=#{object["limit"].to_s}&"
90
+ end
91
+
92
+ if object["days"]
93
+ base_url += "days=#{object["days"].to_s }&"
94
+ end
95
+
96
+ len = base_url.length() -1
97
+ Helpers.getJson(base_url.slice(0..len), "GET")
98
+ end
99
+
100
+ module_function :sources
101
+ end
102
+ end
@@ -0,0 +1,52 @@
1
+ module Bowshock
2
+ module Epic
3
+ def natural()
4
+ uri = "https://epic.gsfc.nasa.gov/api/natural"
5
+ Helpers.getJson(uri, "GET")
6
+ end
7
+ module_function :natural
8
+ def naturalAll()
9
+ uri = "https://epic.gsfc.nasa.gov/api/natural/all"
10
+ Helpers.getJson(uri, "GET")
11
+ end
12
+ module_function :naturalAll
13
+
14
+ def naturalDate(date)
15
+ uri = "https://epic.gsfc.nasa.gov/api/natural/date/#{Helpers.vali_date(date)}"
16
+ Helpers.getJson(uri, "GET")
17
+ end
18
+ module_function :naturalDate
19
+
20
+ def naturalAvailable()
21
+ uri = "https://epic.gsfc.nasa.gov/api/natural/available"
22
+ Helpers.getJson(uri, "GET")
23
+ end
24
+
25
+ module_function :naturalAvailable
26
+
27
+ def enhanced()
28
+ uri = "https://epic.gsfc.nasa.gov/api/enhanced"
29
+ Helpers.getJson(uri, "GET")
30
+ end
31
+ module_function :enhanced
32
+ def enhancedAll()
33
+ uri = "https://epic.gsfc.nasa.gov/api/enhanced/all"
34
+ Helpers.getJson(uri, "GET")
35
+ end
36
+ module_function :enhancedAll
37
+
38
+ def enhancedDate(date)
39
+ uri = "https://epic.gsfc.nasa.gov/api/enhanced/date/#{Helpers.vali_date(date)}"
40
+ Helpers.getJson(uri, "GET")
41
+ end
42
+ module_function :enhancedDate
43
+
44
+ def enhancedAvailable()
45
+ uri = "https://epic.gsfc.nasa.gov/api/enhanced/available"
46
+ Helpers.getJson(uri, "GET")
47
+ end
48
+
49
+ module_function :enhancedAvailable
50
+
51
+ end
52
+ end
@@ -0,0 +1,8 @@
1
+ module Bowshock
2
+ module EVA
3
+ def eva()
4
+ Helpers.getJson("https://data.nasa.gov/resource/q8u9-7uq7.json", 'GET')
5
+ end
6
+ module_function :eva
7
+ end
8
+ end
@@ -0,0 +1,63 @@
1
+ module Bowshock
2
+ module ExoPlanet
3
+ def allConfirmedPlanetsAndCols()
4
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=exoplanets&format=json"
5
+ Helpers.getJson(uri, 'GET')
6
+ end
7
+ module_function :allConfirmedPlanetsAndCols
8
+
9
+ def confirmedPlanetsInKeplerField()
10
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=exoplanets&format=json&where=pl_kepflag=1"
11
+ Helpers.getJson(uri, 'GET')
12
+ end
13
+ module_function :confirmedPlanetsInKeplerField
14
+
15
+ def starsKnownToHostExoPlanets()
16
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=exoplanets&select=distinct pl_hostname&order=pl_hostname&format=json"
17
+ Helpers.getJson(uri, 'GET')
18
+ end
19
+ module_function :starsKnownToHostExoPlanets
20
+
21
+ def confirmedPlanetsThatTransitHostStars()
22
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=exoplanets&format=json&where=pl_tranflag=1"
23
+ Helpers.getJson(uri, 'GET')
24
+ end
25
+ module_function :confirmedPlanetsThatTransitHostStars
26
+
27
+ def currentNonConfirmedPlanetCandidates()
28
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=cumulative&format=json&where=koi_disposition like 'CANDIDATE'"
29
+ Helpers.getJson(uri, 'GET')
30
+ end
31
+ module_function :currentNonConfirmedPlanetCandidates
32
+
33
+ def k2TargetsFromCapaign9()
34
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=k2targets&format=json&where=k2_campaign=9"
35
+ Helpers.getJson(uri, 'GET')
36
+ end
37
+ module_function :k2TargetsFromCapaign9
38
+
39
+ def confirmedPlanetsInMissionStarList()
40
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=missionstars&format=json&where=st_ppnum>0"
41
+ Helpers.getJson(uri, 'GET')
42
+ end
43
+ module_function :confirmedPlanetsInMissionStarList
44
+
45
+ def getSingleKOI(kepoi_name)
46
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=koi&format=json&where=kepoi_name='#{kepoi_name}'"
47
+ Helpers.getJson(uri, 'GET')
48
+ end
49
+ module_function :getSingleKOI
50
+
51
+ def allMicrolensingPlanetsWithTimeSeries()
52
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?&table=exoplanets&format=json&where=pl_discmethod like 'Microlensing' and st_nts > 0"
53
+ Helpers.getJson(uri, 'GET')
54
+ end
55
+ module_function :allMicrolensingPlanetsWithTimeSeries
56
+
57
+ def allPlanetaryCandidatesSmallerThan2ReWithEquilibriumTemperaturesBetween180and303K()
58
+ uri = "https://exoplanetarchive.ipac.caltech.edu/cgi-bin/nstedAPI/nph-nstedAPI?table=cumulative&format=json&where=koi_prad<2 and koi_teq>180 and koi_teq<303 and koi_disposition like 'CANDIDATE'"
59
+ Helpers.getJson(uri, 'GET')
60
+ end
61
+ module_function :allPlanetaryCandidatesSmallerThan2ReWithEquilibriumTemperaturesBetween180and303K
62
+ end
63
+ end
@@ -0,0 +1,43 @@
1
+ module Bowshock
2
+ module GeneLab
3
+ def search(object)
4
+ base_url = "https://genelab-data.ndc.nasa.gov/genelab/data/search?term=#{object["term"]}&type=#{object["type"]}&"
5
+
6
+ if (object["from"])
7
+ base_url += "from=#{object["from"]}&"
8
+ end
9
+
10
+ if (object["size"])
11
+ base_url += "size=#{object["size"]}&"
12
+ end
13
+
14
+ if (object["sort"])
15
+ base_url += "sort=#{object["sort"]}&"
16
+ end
17
+
18
+ if (object["order"])
19
+ base_url += "order=#{object["order"]}&"
20
+ end
21
+
22
+ if (object["ffield"])
23
+ base_url += "ffield=#{object["ffield"]}&"
24
+ end
25
+
26
+ if (object["fvalue"])
27
+ base_url += "fvalue=#{object["fvalue"]}&"
28
+ end
29
+
30
+ req_url = "#{base_url}api_key=#{Helpers.nasa_api_key}"
31
+ Helpers.getJson(req_url, "GET")
32
+ end
33
+ module_function :search
34
+
35
+ def htmlSearch(object)
36
+ base_url = "https://genelab-data.ndc.nasa.gov/genelab/search_studies/?q=#{object["query"]}&data_source=#{object["data_source"]}"
37
+
38
+ req_url = "#{base_url}api_key=#{Helpers.nasa_api_key}"
39
+ Helpers.getJson(req_url, "GET")
40
+ end
41
+ module_function :htmlSearch
42
+ end
43
+ end
@@ -0,0 +1,183 @@
1
+ require "down"
2
+ require 'rake'
3
+ require 'fileutil'
4
+ module Bowshock
5
+ module Helioviewer
6
+ def getjp2image(object)
7
+ base_url = "https://api.helioviewer.org/v2/getJP2Image/?"
8
+
9
+ if object["date"][-1] != 'Z'
10
+ object["date"] += 'Z'
11
+ end
12
+ base_url += "date=#{object["date"]}&"
13
+
14
+ if object["sourceId"]
15
+ base_url += "sourceId=#{object["sourceId"]}&"
16
+ end
17
+ base_url += "#json=true&jpip=true"
18
+
19
+ Helpers.getJson(base_url, 'GET')
20
+ end
21
+ module_function :getjp2image
22
+
23
+ def getjp2header(id)
24
+ Helpers.getJson("https://api.helioviewer.org/v2/getJP2Header/?id=#{id}", 'GET')
25
+ end
26
+ module_function :getjp2header
27
+
28
+ def getJPX(object)
29
+ base_url = "https://api.helioviewer.org/v2/getJPX/?"
30
+
31
+ if object["startTime"][-1] != 'Z'
32
+ object["startTime"] += 'Z'
33
+ end
34
+
35
+ base_url += "startTime=#{object["startTime"] }&"
36
+
37
+ if object["endTime"][-1] != 'Z'
38
+ object["endTime"] += 'Z'
39
+ end
40
+
41
+ base_url += "endTime=#{object["endTime"]}&"
42
+
43
+ if object["sourceId"]
44
+ base_url += "sourceId=#{object["sourceId"]}&"
45
+ end
46
+ if object["linked"]
47
+ base_url += "linked=#{object["linked"]}&"
48
+ end
49
+ if object["cadence"]
50
+ base_url += "cadence=#{object["cadence"]}&"
51
+ end
52
+ base_url += "verbose=true&jpip=true"
53
+ Helpers.getJson(base_url, 'GET')
54
+ end
55
+ module_function :getJPX
56
+
57
+ def getJPXClosestToMidPoint(object)
58
+ base_url = "https://api.helioviewer.org/v2/getJPXClosestToMidPoint/?startTimes="
59
+ object["startTimes"].each do |x|
60
+ base_url += "#{x},"
61
+ end
62
+ base_url = "#{base_url.chomp(',') }&endTimes="
63
+ object["endTimes"].each do |x|
64
+ base_url += "#{x},"
65
+ end
66
+ base_url = "#{base_url.chomp(',')}&"
67
+ base_url += "sourceId=#{object["sourceId"]}&"
68
+ if object["linked"]
69
+ base_url += "linked=#{object["linked"]}&"
70
+ end
71
+ base_url += "verbose=true&jpip=true"
72
+ Helpers.getJson(base_url, 'GET')
73
+ end
74
+ module_function :getJPXClosestToMidPoint
75
+
76
+ def queueMovie(object)
77
+ base_url = "https://api.helioviewer.org/v2/queueMovie/?"
78
+ if object["startTime"][-1] != 'Z'
79
+ object["startTime"] += 'Z'
80
+ end
81
+ base_url += "startTime=#{object["startTime"]}&"
82
+
83
+ if object["endTime"][-1] != 'Z'
84
+ object["endTime"] += 'Z'
85
+ end
86
+ base_url += "endTime=#{object["endTime"]}&"
87
+ base_url += "layers=#{object["layers"]}&"
88
+ base_url += "events=#{object["events"]}&"
89
+ base_url += "eventsLabels=#{object["eventsLabels"]}&"
90
+ base_url += "imageScale=#{object["imageScale"]}&"
91
+
92
+ if object["format"]
93
+ base_url += "format=#{object["format"]}&"
94
+ end
95
+ if object["frameRate"]
96
+ base_url += "frameRate=#{object["frameRate"]}&"
97
+ end
98
+ if object["maxFrames"]
99
+ base_url += "maxFrames=#{object["maxFrames"]}&"
100
+ end
101
+ if object["scale"]
102
+ base_url += "scale=#{object["scale"]}&"
103
+ end
104
+ if object["scaleType"]
105
+ base_url += "scaleType=#{object["scaleType"]}&"
106
+ end
107
+ if object["scaleX"]
108
+ base_url += "scaleX=#{object["scaleX"]}&"
109
+ end
110
+ if object["scaleY"]
111
+ base_url += "scaleY=#{object["scaleY"] }&"
112
+ end
113
+ if object["movieLength"]
114
+ base_url += "movieLength=#{object["movieLength"]}&"
115
+ end
116
+ if object["watermark"]
117
+ base_url += "watermark=#{object["watermark"]}&"
118
+ end
119
+ if object["width"]
120
+ base_url += "width=#{object["width"]}&"
121
+ end
122
+ if object["height"]
123
+ base_url += "height=#{object["height"]}&"
124
+ end
125
+ if object["x0"]
126
+ base_url += "x0=#{object["x0"]}&"
127
+ end
128
+ if object["y0"]
129
+ base_url += "y0=#{object["y0"]}&"
130
+ end
131
+ if object["x1"]
132
+ base_url += "x1=#{object["x1"]}&"
133
+ end
134
+ if object["y1"]
135
+ base_url += "y1=#{object["y1"]}&"
136
+ end
137
+ if object["x2"]
138
+ base_url += "x2=#{object["x2"]}&"
139
+ end
140
+ if object["y2"]
141
+ base_url += "y2=#{object["y2"]}&"
142
+ end
143
+ if object["callback"]
144
+ base_url += "callback='#{object["callback"]}&"
145
+ end
146
+ Helpers.getJson(base_url.chomp('&'), 'GET')
147
+ end
148
+
149
+ module_function :queueMovie
150
+
151
+ def reQueueMovie(id)
152
+ Helpers.getJson("https://api.helioviewer.org/v2/reQueueMovie/?id=#{id}", 'GET')
153
+ end
154
+ module_function :reQueueMovie
155
+
156
+ def getMovieStatus(object)
157
+ base_url = "https://api.helioviewer.org/v2/getMovieStatus/?id=#{object["id"]}&format=#{object["format"]}&"
158
+ if object["verbose"]
159
+ base_url += "verbose=#{object["verbose"]}&"
160
+ end
161
+ if object["callback"]
162
+ base_url += "callback=#{object["callback"]}&";
163
+ end
164
+ if object["token"]
165
+ base_url += "token=#{object["token"]}&";
166
+ end
167
+ return Helpers.getJson(base_url.chomp('&'), 'GET')
168
+ end
169
+ module_function :getMovieStatus
170
+
171
+ def downloadMovie(object)
172
+ base_url = "https://api.helioviewer.org/v2/downloadMovie/?id=#{object["id"]}&format=#{object["format"]}&"
173
+ if object["hq"]
174
+ base_url += "hq=#{object["hq"]}"
175
+ end
176
+ Down.download(base_url, destination: "../../movies")
177
+ Dir.glob('../../movies/*').each do |filename|
178
+ FileUtils.mv( filename, filename.ext("mp4"))
179
+ end
180
+ end
181
+ module_function :downloadMovie
182
+ end
183
+ end