ellipsis 3.1.48__tar.gz → 3.1.50__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.

Files changed (81) hide show
  1. {ellipsis-3.1.48 → ellipsis-3.1.50}/PKG-INFO +1 -18
  2. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/__init__.py +2 -2
  3. ellipsis-3.1.50/ellipsis/account/__init__.py +4 -0
  4. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/account/root.py +9 -0
  5. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/apiManager.py +1 -0
  6. ellipsis-3.1.50/ellipsis/compute/__init__.py +1 -0
  7. ellipsis-3.1.50/ellipsis/compute/root.py +112 -0
  8. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/root.py +9 -0
  9. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/root.py +5 -1
  10. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/sanitize.py +21 -1
  11. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis.egg-info/PKG-INFO +1 -18
  12. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis.egg-info/SOURCES.txt +2 -0
  13. {ellipsis-3.1.48 → ellipsis-3.1.50}/setup.py +1 -1
  14. {ellipsis-3.1.48 → ellipsis-3.1.50}/test/test.py +30 -1
  15. ellipsis-3.1.48/ellipsis/account/__init__.py +0 -4
  16. {ellipsis-3.1.48 → ellipsis-3.1.50}/LICENSE +0 -0
  17. {ellipsis-3.1.48 → ellipsis-3.1.50}/README.md +0 -0
  18. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/account/accessToken/__init__.py +0 -0
  19. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/account/accessToken/root.py +0 -0
  20. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/__init__.py +0 -0
  21. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/bookmark/__init__.py +0 -0
  22. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/bookmark/root.py +0 -0
  23. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/file/__init__.py +0 -0
  24. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/file/root.py +0 -0
  25. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/folder/__init__.py +0 -0
  26. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/folder/root.py +0 -0
  27. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/hashtag/__init__.py +0 -0
  28. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/hashtag/root.py +0 -0
  29. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/invite/__init__.py +0 -0
  30. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/invite/root.py +0 -0
  31. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/member/__init__.py +0 -0
  32. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/member/root.py +0 -0
  33. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/__init__.py +0 -0
  34. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/root.py +0 -0
  35. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/__init__.py +0 -0
  36. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/file/__init__.py +0 -0
  37. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/file/root.py +0 -0
  38. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/order/__init__.py +0 -0
  39. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/order/root.py +0 -0
  40. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/root.py +0 -0
  41. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/pointCloud/timestamp/util.py +0 -0
  42. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/__init__.py +0 -0
  43. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/root.py +0 -0
  44. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/style/__init__.py +0 -0
  45. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/style/root.py +0 -0
  46. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/__init__.py +0 -0
  47. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/file/__init__.py +0 -0
  48. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/file/root.py +0 -0
  49. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/order/__init__.py +0 -0
  50. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/order/root.py +0 -0
  51. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/root.py +0 -0
  52. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/raster/timestamp/util.py +0 -0
  53. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/root.py +0 -0
  54. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/setUpTask/__init__.py +0 -0
  55. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/setUpTask/root.py +0 -0
  56. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/usage/__init__.py +0 -0
  57. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/usage/root.py +0 -0
  58. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/__init__.py +0 -0
  59. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/featureProperty/__init__.py +0 -0
  60. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/featureProperty/root.py +0 -0
  61. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/style/__init__.py +0 -0
  62. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/style/root.py +0 -0
  63. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/__init__.py +0 -0
  64. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/feature/__init__.py +0 -0
  65. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/feature/message/__init__.py +0 -0
  66. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/feature/message/root.py +0 -0
  67. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/feature/root.py +0 -0
  68. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/feature/series/__init__.py +0 -0
  69. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/feature/series/root.py +0 -0
  70. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/file/__init__.py +0 -0
  71. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/file/root.py +0 -0
  72. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/order/__init__.py +0 -0
  73. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/path/vector/timestamp/order/root.py +0 -0
  74. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/user/__init__.py +0 -0
  75. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/user/root.py +0 -0
  76. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/util/__init__.py +0 -0
  77. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis/util/root.py +0 -0
  78. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis.egg-info/dependency_links.txt +0 -0
  79. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis.egg-info/requires.txt +9 -9
  80. {ellipsis-3.1.48 → ellipsis-3.1.50}/ellipsis.egg-info/top_level.txt +0 -0
  81. {ellipsis-3.1.48 → ellipsis-3.1.50}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ellipsis
3
- Version: 3.1.48
3
+ Version: 3.1.50
4
4
  Summary: Package to interact with the Ellipsis API
5
5
  Home-page: https://github.com/ellipsis-drive-internal/python-package
6
6
  Author: Daniel van der Maas
@@ -11,23 +11,6 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: pandas
15
- Requires-Dist: Pillow
16
- Requires-Dist: matplotlib
17
- Requires-Dist: geopandas
18
- Requires-Dist: pyproj
19
- Requires-Dist: imageio
20
- Requires-Dist: numpy
21
- Requires-Dist: imagecodecs
22
- Requires-Dist: requests
23
- Requires-Dist: requests-toolbelt
24
- Requires-Dist: rasterio
25
- Requires-Dist: Shapely
26
- Requires-Dist: geopy
27
- Requires-Dist: scikit-image
28
- Requires-Dist: Fiona
29
- Requires-Dist: pygltflib
30
- Requires-Dist: tifffile
31
14
 
32
15
  # Ellipsis Drive Python Package
33
16
 
@@ -5,8 +5,8 @@ from ellipsis import account
5
5
  from ellipsis import user
6
6
  from ellipsis import path
7
7
  from ellipsis import util
8
-
9
- __version__ = '3.1.48'
8
+ from ellipsis import compute
9
+ __version__ = '3.1.50'
10
10
 
11
11
 
12
12
 
@@ -0,0 +1,4 @@
1
+
2
+ from ellipsis.account.root import logIn, listRoot, getInfo
3
+
4
+ from ellipsis.account import accessToken
@@ -24,6 +24,15 @@ def logIn(username, password, validFor = None):
24
24
 
25
25
  return(token)
26
26
 
27
+
28
+ def getInfo(token):
29
+ token = sanitize.validString('token', token, True)
30
+
31
+ r = apiManager.get( '/account', body={}, token=token)
32
+
33
+
34
+ return r
35
+
27
36
  def listRoot(rootName, token, pathTypes= None, pageStart = None, listAll = True):
28
37
  token = sanitize.validString('token', token, True)
29
38
  rootName = sanitize.validString('rootName', rootName, True)
@@ -116,6 +116,7 @@ def actualCall(method, url, body, token):
116
116
  return r
117
117
 
118
118
  def upload(url, filePath, body, token, key = 'data', memfile= None):
119
+ body['debug'] = True
119
120
  body = filterNone(body, toString=True)
120
121
 
121
122
  seperator = os.path.sep
@@ -0,0 +1 @@
1
+ from ellipsis.compute.root import createCluster
@@ -0,0 +1,112 @@
1
+ import dill
2
+ import base64
3
+ import time
4
+
5
+ from ellipsis.util.root import recurse
6
+ from ellipsis import sanitize
7
+ from ellipsis import apiManager
8
+ from ellipsis.account import getInfo
9
+
10
+
11
+
12
+ def createCluster(layers, token, nodes=None, interpreter='python3.12', requirements= [], awaitTillStarted = True):
13
+
14
+ layers = sanitize.validDictArray('layers', layers, True)
15
+ token = sanitize.validString('token', token, True)
16
+ nodes = sanitize.validInt('nodes', nodes, False)
17
+ interpreter = sanitize.validString('interpreter', interpreter, True)
18
+ requirements = sanitize.validStringArray('requirements', requirements, False)
19
+
20
+ if type(nodes) == type(None):
21
+ info = getInfo(token=token)
22
+ nodes = info['plan']['maxComputeNodes']
23
+ if nodes == 0:
24
+ raise ValueError('You have no compute nodes in your plan. Please update your subscription')
25
+
26
+ requirements = "\n".join(requirements)
27
+
28
+ body = {'layers':layers, 'interpreter':interpreter, 'nodes':nodes, 'requirements':requirements}
29
+ r = apiManager.post('/compute', body, token)
30
+
31
+ clusterId = r['id']
32
+ while awaitTillStarted:
33
+ res = listClusters(token=token)['result']
34
+ r = [x for x in res if x['id'] == clusterId][0]
35
+
36
+ if r['status'] == 'available':
37
+ break
38
+ time.sleep(1)
39
+
40
+ return {'id':clusterId}
41
+
42
+
43
+ def execute(clusterId, f, token, awaitTillCompleted=True):
44
+ clusterId = sanitize.validUuid('clusterId', clusterId, True)
45
+ token = sanitize.validString('token', token, True)
46
+
47
+ if str(type(f)) != "<class 'function'>":
48
+ raise ValueError('parameter f must be a function')
49
+
50
+ f_bytes = dill.dumps(f)
51
+ f_string = base64.b64encode(f_bytes)
52
+
53
+ body = { 'file':f_string}
54
+ apiManager.post('/compute/' + clusterId + '/execute', body, token)
55
+
56
+ while awaitTillCompleted:
57
+ res = listClusters(token=token)['result']
58
+ r = [x for x in res if x['id'] == clusterId][0]
59
+ if r['status'] == 'completed':
60
+ break
61
+ time.sleep(1)
62
+
63
+ return r['result']
64
+
65
+ def parseResults(r):
66
+ results = []
67
+ for x in r:
68
+ x = base64.b64decode(x)
69
+ x = dill.loads(x)
70
+ results = results + x
71
+
72
+ return results
73
+
74
+ def terminateCluster(clusterId, token, awaitTillTerminated = True):
75
+ clusterId = sanitize.validUuid('clusterId', clusterId, True)
76
+ token = sanitize.validString('token', token, True)
77
+
78
+
79
+ r = apiManager.post('/compute/' + clusterId + '/terminate', {}, token)
80
+
81
+ while awaitTillTerminated:
82
+ res = listClusters(token=token)['result']
83
+ z = [x for x in res if x['id'] == clusterId][0]
84
+ if z['status'] == 'stopped':
85
+ break
86
+ time.sleep(1)
87
+
88
+ return r
89
+
90
+ def getClusterInfo(clusterId, token):
91
+ res = listClusters(token=token)['result']
92
+ r = [x for x in res if x['id'] == clusterId]
93
+ if len(r) ==0:
94
+ raise ValueError('No cluster found for given id')
95
+ return r[0]
96
+
97
+ def listClusters(token, pageStart = None, listAll = True):
98
+ token = sanitize.validString('token', token, True)
99
+
100
+
101
+ body = { 'pageStart':pageStart }
102
+
103
+
104
+ def f(body):
105
+ return apiManager.get('/compute', body, token)
106
+
107
+ r = recurse(f, body, listAll)
108
+ for i in range(len(r['result'])):
109
+ if 'result' in r['result'][i]:
110
+ r['result'][i]['result'] = parseResults(r['result'][i]['result'])
111
+ return r
112
+
@@ -12,6 +12,15 @@ def add( name, token, parentId = None, publicAccess =None, metadata=None):
12
12
 
13
13
  return apiManager.post('/path/vector', body, token)
14
14
 
15
+ def editRendering(pathId, maxZoom, token):
16
+ token = sanitize.validString('token', token, True)
17
+ pathId = sanitize.validUuid('parentId', pathId, True)
18
+ maxZoom = sanitize.validInt('maxZoom', maxZoom, True)
19
+
20
+ body = {"method":"vector tiles","parameters":{"zoom":maxZoom,"mb":2,"step":1000,"amount":1000},"centerPointOnly":False,"lod":6}
21
+ r = apiManager.put('/path/' + pathId + '/vector/renderOptions' , body, token)
22
+ return r
23
+
15
24
 
16
25
  def editFilter(pathId, propertyFilter, token):
17
26
  pathId = sanitize.validUuid('pathId', pathId, True)
@@ -13,6 +13,9 @@ from ellipsis.path import get as getInfo
13
13
 
14
14
  import datetime
15
15
 
16
+
17
+
18
+
16
19
  def add(pathId, token, properties = None, description = None, date ={'from': datetime.datetime.now(), 'to': datetime.datetime.now()}):
17
20
 
18
21
  pathId = sanitize.validUuid('pathId', pathId, True)
@@ -150,7 +153,8 @@ def getFeaturesByIds(pathId, timestampId, featureIds, token = None, showProgress
150
153
  sh = sh.to_crs('EPSG:' + str(epsg))
151
154
  r['result'] = sh
152
155
  return r
153
-
156
+
157
+
154
158
 
155
159
  def getFeaturesByExtent(pathId, timestampId, extent, propertyFilter = None, token = None, listAll = True, pageStart = None, epsg = 4326, coordinateBuffer = None, onlyIfCenterPointInExtent = False):
156
160
  pathId = sanitize.validUuid('pathId', pathId, True)
@@ -81,7 +81,7 @@ def validString(name, value, required):
81
81
  return
82
82
 
83
83
  if type(value) != type('x'):
84
- raise ValueError(name + 'must be of type string')
84
+ raise ValueError(name + ' must be of type string')
85
85
  return(value)
86
86
 
87
87
  def validShapely(name, value, required):
@@ -317,6 +317,26 @@ def validFloatArray(name, value, required):
317
317
  return value
318
318
 
319
319
 
320
+ def validDictArray(name, value, required):
321
+ if not required and type(value) == type(None):
322
+ return
323
+
324
+ try:
325
+ value = list(value)
326
+
327
+ except:
328
+ raise ValueError(name + ' must be an iterable')
329
+
330
+ types = np.array([(not 'dict' in str(type(x))) for x in value])
331
+
332
+ if np.sum(types) > 0:
333
+ raise ValueError(name + ' must be a list of dictionaries')
334
+
335
+
336
+ return value
337
+
338
+
339
+
320
340
  def validIntArray(name, value, required):
321
341
  if not required and type(value) == type(None):
322
342
  return
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ellipsis
3
- Version: 3.1.48
3
+ Version: 3.1.50
4
4
  Summary: Package to interact with the Ellipsis API
5
5
  Home-page: https://github.com/ellipsis-drive-internal/python-package
6
6
  Author: Daniel van der Maas
@@ -11,23 +11,6 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Requires-Dist: pandas
15
- Requires-Dist: Pillow
16
- Requires-Dist: matplotlib
17
- Requires-Dist: geopandas
18
- Requires-Dist: pyproj
19
- Requires-Dist: imageio
20
- Requires-Dist: numpy
21
- Requires-Dist: imagecodecs
22
- Requires-Dist: requests
23
- Requires-Dist: requests-toolbelt
24
- Requires-Dist: rasterio
25
- Requires-Dist: Shapely
26
- Requires-Dist: geopy
27
- Requires-Dist: scikit-image
28
- Requires-Dist: Fiona
29
- Requires-Dist: pygltflib
30
- Requires-Dist: tifffile
31
14
 
32
15
  # Ellipsis Drive Python Package
33
16
 
@@ -13,6 +13,8 @@ ellipsis/account/__init__.py
13
13
  ellipsis/account/root.py
14
14
  ellipsis/account/accessToken/__init__.py
15
15
  ellipsis/account/accessToken/root.py
16
+ ellipsis/compute/__init__.py
17
+ ellipsis/compute/root.py
16
18
  ellipsis/path/__init__.py
17
19
  ellipsis/path/root.py
18
20
  ellipsis/path/bookmark/__init__.py
@@ -6,7 +6,7 @@ with open("README.md", "r") as fh:
6
6
 
7
7
  setuptools.setup(
8
8
  name="ellipsis",
9
- version="3.1.48",
9
+ version="3.1.50",
10
10
  author="Daniel van der Maas",
11
11
  author_email="daniel@ellipsis-drive.com",
12
12
  description="Package to interact with the Ellipsis API",
@@ -5,10 +5,28 @@ import time
5
5
  import numpy as np
6
6
  import pandas as pd
7
7
 
8
+ from test.pointCloud import timestampId
9
+
10
+ el.path.folder.listFolder()
11
+
12
+ import dill
13
+ with open('/home/daniel/Downloads/nonTrivial.dill', "rb") as dill_file:
14
+ f = dill.load(dill_file)
15
+ f(r , None, None)
8
16
 
9
17
 
10
18
  import os
11
19
 
20
+ token = 'epat_S8uBdcJ8GqjUeh5ycJqXurMKHYnrs5BZT002G4nWWQu6Enl6TrDvtAzK1I9RPQmk'
21
+ file = '/home/daniel/Ellipsis/db/zone0.tif'
22
+
23
+
24
+ pathId = 'cc889803-e643-4384-9b73-a89c8f09dd65'
25
+ timestampId = 'cc889803-e643-4384-9b73-a89c8f09dd65'
26
+ el.path.raster.timestamp.file.add(pathId=pathId, timestampId=timestampId, fileFormat='tif', filePath = file, token = token)
27
+
28
+
29
+
12
30
  file = '/home/daniel/Ellipsis/keys/admin'
13
31
  with open(file,'r') as c:
14
32
  password = c.read()
@@ -52,7 +70,18 @@ setDomains(pathId = pathId, token = daan_token, domains = ['hoi'])
52
70
  setDomains(pathId = pathId, token = daan_token, domains = None)
53
71
 
54
72
 
73
+ ####account
74
+ token = logIn('admin', 'k67cFGK1ued6aPP')
75
+
76
+ layers = [{'pathId':'07c6ad34-9e0b-494f-9c8c-3f5cfbc1b76f', 'timestampId':'7cf1c34b-b863-419f-9dd5-33eb6ab8b2ac'}]
77
+ clusterId = createCluster(layers = layers, token=token, requirements = ['numpy'], nodes = 2)['id']
55
78
 
79
+ def f(params):
80
+ r = params['7cf1c34b-b863-419f-9dd5-33eb6ab8b2ac']['raster']
81
+ z = np.max(r)
82
+ return z
83
+
84
+ out = execute(clusterId=clusterId, f=f, token = token)
56
85
 
57
86
 
58
87
  ###files
@@ -553,7 +582,7 @@ el.path.raster.timestamp.file.add(pathId = 'f3f55c63-4f22-4dac-8d96-cd9a38069ee2
553
582
  sh = gpd.read_file('/home/daniel/Ellipsis/db/testset/buildings_mini')
554
583
  b = BytesIO()
555
584
  out = el.util.saveVector(features = sh, targetFile = b)
556
-
585
+ el.util.saveRaster()
557
586
  el.path.vector.timestamp.file.add(pathId = 'c6a341e1-59bf-44f8-a0d7-0962415a8fa2', timestampId= 'ad490f78-0cf0-426e-9238-e0ef803c7371', token = token, fileFormat='gpkg', memFile=out, name = 'test.gpkg')
558
587
 
559
588
 
@@ -1,4 +0,0 @@
1
-
2
- from ellipsis.account.root import logIn, listRoot
3
-
4
- from ellipsis.account import accessToken
File without changes
File without changes
@@ -1,17 +1,17 @@
1
- pandas
1
+ Fiona
2
2
  Pillow
3
- matplotlib
3
+ Shapely
4
4
  geopandas
5
- pyproj
5
+ geopy
6
+ imagecodecs
6
7
  imageio
8
+ matplotlib
7
9
  numpy
8
- imagecodecs
10
+ pandas
11
+ pygltflib
12
+ pyproj
13
+ rasterio
9
14
  requests
10
15
  requests-toolbelt
11
- rasterio
12
- Shapely
13
- geopy
14
16
  scikit-image
15
- Fiona
16
- pygltflib
17
17
  tifffile
File without changes