ellipsis 3.1.4__tar.gz → 3.1.6__tar.gz
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.
Potentially problematic release.
This version of ellipsis might be problematic. Click here for more details.
- {ellipsis-3.1.4 → ellipsis-3.1.6}/PKG-INFO +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/__init__.py +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/root.py +3 -2
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/file/root.py +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/root.py +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/root.py +4 -16
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/root.py +2 -2
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/sanitize.py +19 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/util/root.py +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/PKG-INFO +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/setup.py +1 -1
- {ellipsis-3.1.4 → ellipsis-3.1.6}/test/test.py +2 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/LICENSE +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/README.md +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/accessToken/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/accessToken/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/account/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/apiManager.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/file/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/file/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/folder/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/folder/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/hashtag/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/hashtag/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/invite/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/invite/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/member/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/member/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/style/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/style/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/file/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/order/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/order/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/raster/timestamp/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/usage/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/usage/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/featureProperty/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/featureProperty/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/style/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/style/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/message/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/message/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/series/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/series/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/file/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/file/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/order/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/order/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/user/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/user/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/util/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/view/__init__.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/view/root.py +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/SOURCES.txt +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/dependency_links.txt +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/requires.txt +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis.egg-info/top_level.txt +0 -0
- {ellipsis-3.1.4 → ellipsis-3.1.6}/setup.cfg +0 -0
|
@@ -24,14 +24,15 @@ def editBand(pathId, bandNumber, name, token):
|
|
|
24
24
|
return(r)
|
|
25
25
|
|
|
26
26
|
# /path/{pathId}/raster
|
|
27
|
-
def edit(pathId, token, interpolation = None, includesTransparent = None):
|
|
27
|
+
def edit(pathId, token, interpolation = None, includesTransparent = None, compressionQuality = None):
|
|
28
28
|
|
|
29
29
|
token = sanitize.validString('token', token, True)
|
|
30
30
|
pathId = sanitize.validUuid('pathId', pathId, True)
|
|
31
31
|
interpolation = sanitize.validString('interpolation', interpolation, False)
|
|
32
32
|
includesTransparent = sanitize.validBool('includesTransparent', includesTransparent, False)
|
|
33
|
+
compressionQuality = sanitize.validInt('compressionQuality', compressionQuality, False)
|
|
33
34
|
|
|
34
|
-
body = {'interpolation':interpolation, 'includesTransparent':includesTransparent}
|
|
35
|
+
body = {'interpolation':interpolation, 'includesTransparent':includesTransparent, 'compressionQuality':compressionQuality}
|
|
35
36
|
r = apiManager.patch('/path/' + pathId + '/raster' , body, token)
|
|
36
37
|
return(r)
|
|
37
38
|
|
|
@@ -29,7 +29,7 @@ def get(pathId, timestampId, token, pageStart= None, listAll = True):
|
|
|
29
29
|
pageStart = sanitize.validUuid('pageStart', pageStart, False)
|
|
30
30
|
|
|
31
31
|
def f(body):
|
|
32
|
-
r = apiManager.get('/path/' + pathId + '/raster/timestamp/' + timestampId + '/file',
|
|
32
|
+
r = apiManager.get('/path/' + pathId + '/raster/timestamp/' + timestampId + '/file', body, token)
|
|
33
33
|
for i in np.arange( len(r['result'])):
|
|
34
34
|
if 'info' in r['result'][i].keys() and 'bounds' in r['result'][i]['info'].keys() and type(r['result'][i]['info']['bounds']) != type(None):
|
|
35
35
|
r['result'][i]['info']['bounds'] = gpd.GeoDataFrame.from_features([{'id': 0, 'properties':{}, 'geometry':r['result'][i]['info']['bounds']}]).unary_union
|
|
@@ -26,7 +26,7 @@ def search(pathTypes = ['raster', 'vector', 'file', 'folder'] ,root=None, text=N
|
|
|
26
26
|
date = sanitize.validDateRange('date', date, False)
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
resolution = sanitize.
|
|
29
|
+
resolution = sanitize.validResolution('resolution', resolution, False)
|
|
30
30
|
|
|
31
31
|
body = {
|
|
32
32
|
'type': pathTypes,
|
|
@@ -76,12 +76,11 @@ def zipLevels(levelOfDetail1, levelOfDetail2, levelOfDetail3, levelOfDetail4, le
|
|
|
76
76
|
levels = None
|
|
77
77
|
return levels
|
|
78
78
|
|
|
79
|
-
def add(pathId, timestampId, features, token, showProgress = True,
|
|
79
|
+
def add(pathId, timestampId, features, token, showProgress = True, levelOfDetail1 = None, levelOfDetail2 = None, levelOfDetail3 = None, levelOfDetail4 = None, levelOfDetail5 = None, cores = 1):
|
|
80
80
|
pathId = sanitize.validUuid('pathId', pathId, True)
|
|
81
81
|
timestampId = sanitize.validUuid('timestampId', timestampId, True)
|
|
82
82
|
token = sanitize.validString('token', token, True)
|
|
83
83
|
features = sanitize.validGeopandas('features', features, True, cores = cores)
|
|
84
|
-
zoomLevels = sanitize.validIntArray('zoomLevels', zoomLevels, False)
|
|
85
84
|
showProgress = sanitize.validBool('showProgress', showProgress, True)
|
|
86
85
|
cores = sanitize.validInt('cores', cores, True)
|
|
87
86
|
|
|
@@ -127,9 +126,9 @@ def add(pathId, timestampId, features, token, showProgress = True, zoomLevels =
|
|
|
127
126
|
levels = zipLevels(levelOfDetail1, levelOfDetail2, levelOfDetail3, levelOfDetail4, levelOfDetail5, indices_sub)
|
|
128
127
|
|
|
129
128
|
if type(levels) != type(None):
|
|
130
|
-
featuresBody = [{'feature': features_sub[i], '
|
|
129
|
+
featuresBody = [{'feature': features_sub[i], 'levelsOfDetail': levels[i] } for i in np.arange(len(indices_sub))]
|
|
131
130
|
else:
|
|
132
|
-
featuresBody = [{'feature': features_sub[i]
|
|
131
|
+
featuresBody = [{'feature': features_sub[i] } for i in np.arange(len(indices_sub))]
|
|
133
132
|
body = {"features":featuresBody}
|
|
134
133
|
r = apiManager.post('/path/' + pathId + '/vector/timestamp/' + timestampId + '/feature', body, token)
|
|
135
134
|
addedIds = addedIds + r
|
|
@@ -141,12 +140,11 @@ def add(pathId, timestampId, features, token, showProgress = True, zoomLevels =
|
|
|
141
140
|
|
|
142
141
|
|
|
143
142
|
|
|
144
|
-
def edit(pathId, timestampId, featureIds, token, features = None, showProgress = True,
|
|
143
|
+
def edit(pathId, timestampId, featureIds, token, features = None, showProgress = True, levelOfDetail1 = None, levelOfDetail2 = None, levelOfDetail3 = None, levelOfDetail4 = None, levelOfDetail5 = None, cores = 1):
|
|
145
144
|
pathId = sanitize.validUuid('pathId', pathId, True)
|
|
146
145
|
timestampId = sanitize.validUuid('timestampId', timestampId, True)
|
|
147
146
|
token = sanitize.validString('token', token, True)
|
|
148
147
|
features = sanitize.validGeopandas('features', features, False, cores=cores)
|
|
149
|
-
newZoomLevels = sanitize.validIntArray('newZoomLevels', newZoomLevels, False)
|
|
150
148
|
featureIds = sanitize.validUuidArray('featureIds', featureIds, True)
|
|
151
149
|
showProgress = sanitize.validBool('showProgress', showProgress, True)
|
|
152
150
|
cores = sanitize.validInt('cores', cores, True)
|
|
@@ -172,18 +170,8 @@ def edit(pathId, timestampId, featureIds, token, features = None, showProgress =
|
|
|
172
170
|
levels = zipLevels(levelOfDetail1, levelOfDetail2, levelOfDetail3, levelOfDetail4, levelOfDetail5, indices_sub)
|
|
173
171
|
|
|
174
172
|
if type(levels) == type(None):
|
|
175
|
-
if str(type(newZoomLevels)) != str(type(None)) and str(type(features)) != str(type(None)):
|
|
176
|
-
changes = [{'featureId':x[0] , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry'], 'newZoomLevels':newZoomLevels} for x in zip(featureIds_sub, features_sub['features'])]
|
|
177
|
-
elif str(type(newZoomLevels)) != str(type(None)) and str(type(features)) == str(type(None)):
|
|
178
|
-
changes = [{'featureId':geometryId, 'newZoomLevels':newZoomLevels} for geometryId in featureIds]
|
|
179
|
-
else:
|
|
180
173
|
changes = [{'featureId':x[0] , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry']} for x in zip(featureIds_sub, features_sub['features'])]
|
|
181
174
|
else:
|
|
182
|
-
if str(type(newZoomLevels)) != str(type(None)) and str(type(features)) != str(type(None)):
|
|
183
|
-
changes = [{'featureId':x[0] , 'levelsOfDetail': levels , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry'], 'newZoomLevels':newZoomLevels} for x in zip(featureIds_sub, features_sub['features'])]
|
|
184
|
-
elif str(type(newZoomLevels)) != str(type(None)) and str(type(features)) == str(type(None)):
|
|
185
|
-
changes = [{'featureId':geometryId, 'levelsOfDetail': levels, 'newZoomLevels':newZoomLevels} for geometryId in featureIds]
|
|
186
|
-
else:
|
|
187
175
|
changes = [{'featureId':x[0], 'levelsOfDetail': levels , 'newProperties':x[1]['properties'], 'newGeometry':x[1]['geometry']} for x in zip(featureIds_sub, features_sub['features'])]
|
|
188
176
|
|
|
189
177
|
body = {'changes':changes}
|
|
@@ -146,7 +146,7 @@ def getFeaturesByExtent(pathId, timestampId, extent, propertyFilter = None, toke
|
|
|
146
146
|
extent = sanitize.validBounds('extent', extent, True)
|
|
147
147
|
propertyFilter = sanitize.validObject('propertyFilter', propertyFilter, False)
|
|
148
148
|
listAll = sanitize.validBool('listAll', listAll, True)
|
|
149
|
-
pageStart = sanitize.
|
|
149
|
+
pageStart = sanitize.validObject('pageStart', pageStart, False)
|
|
150
150
|
|
|
151
151
|
p = geometry.Polygon( [(extent['xMin'], extent['yMin']), (extent['xMin'], extent['yMax']),(extent['xMax'], extent['yMax']),(extent['xMax'], extent['yMin'])] )
|
|
152
152
|
p = gpd.GeoDataFrame({'geometry':[p]})
|
|
@@ -195,7 +195,7 @@ def listFeatures(pathId, timestampId, token = None, listAll = True, pageStart =
|
|
|
195
195
|
timestampId = sanitize.validUuid('timestampId', timestampId, True)
|
|
196
196
|
token = sanitize.validString('token', token, False)
|
|
197
197
|
listAll = sanitize.validBool('listAll', listAll, True)
|
|
198
|
-
pageStart = sanitize.
|
|
198
|
+
pageStart = sanitize.validObject('pageStart', pageStart, False)
|
|
199
199
|
|
|
200
200
|
body = {'pageStart': pageStart}
|
|
201
201
|
|
|
@@ -18,6 +18,25 @@ def validUuid(name, value, required):
|
|
|
18
18
|
raise ValueError(name + ' must be of type string and be a uuid')
|
|
19
19
|
return(value)
|
|
20
20
|
|
|
21
|
+
def validResolution(name, value, required):
|
|
22
|
+
if not required and type(value) == type(None):
|
|
23
|
+
return
|
|
24
|
+
|
|
25
|
+
if type(value) != type({}):
|
|
26
|
+
raise ValueError(name + ' must be of type dictionary with properties min and max as float')
|
|
27
|
+
|
|
28
|
+
if 'min' not in value.keys() or 'max' not in value.keys():
|
|
29
|
+
raise ValueError(name + ' must be of type dictionary with properties min and max as float')
|
|
30
|
+
|
|
31
|
+
try:
|
|
32
|
+
value = {'min': float(value['min']), 'max':float(value['max']) }
|
|
33
|
+
except:
|
|
34
|
+
raise ValueError(name + ' must be of type dictionary with properties min and max as float')
|
|
35
|
+
|
|
36
|
+
return(value)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
21
40
|
def validDateRange(name, value, required):
|
|
22
41
|
|
|
23
42
|
if not required and type(value) == type(None):
|
|
@@ -274,6 +274,8 @@ yMax = bounds.bounds[3]
|
|
|
274
274
|
|
|
275
275
|
bounds = {'xMin':xMin, 'xMax':xMax, 'yMin':yMin, 'yMax':yMax}
|
|
276
276
|
sh = el.path.vector.timestamp.getFeaturesByExtent(pathId = mapId, timestampId = layerId, extent = bounds, token = token, listAll = False, epsg = 4326)
|
|
277
|
+
sh = el.path.vector.timestamp.getFeaturesByExtent(pathId = mapId, timestampId = layerId, extent = bounds, token = token, listAll = False, pageStart = sh['nextPageStart'], epsg = 4326)
|
|
278
|
+
|
|
277
279
|
sh['result'].plot()
|
|
278
280
|
|
|
279
281
|
sh = el.path.vector.timestamp.listFeatures(mapId, layerId, token)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ellipsis-3.1.4 → ellipsis-3.1.6}/ellipsis/path/vector/timestamp/feature/message/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|