This is an automated email from the ASF dual-hosted git repository.

rkk pushed a commit to branch tmp-stv
in repository https://gitbox.apache.org/repos/asf/sdap-nexus.git

commit 844e1d85bda27a9aaba866f2e3d7a1ad7c0e5a7b
Author: rileykk <[email protected]>
AuthorDate: Thu Dec 21 11:31:33 2023 -0800

    Simple CSV renderer - point cloud only
---
 analysis/webservice/algorithms/Tomogram3D.py | 14 ++++++++++++--
 analysis/webservice/webmodel/NexusResults.py |  1 -
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/analysis/webservice/algorithms/Tomogram3D.py 
b/analysis/webservice/algorithms/Tomogram3D.py
index cc3d97c..686dc45 100644
--- a/analysis/webservice/algorithms/Tomogram3D.py
+++ b/analysis/webservice/algorithms/Tomogram3D.py
@@ -69,7 +69,7 @@ class Tomogram3D(NexusCalcHandler):
         "output": {
             "name": "Output format",
             "type": "string",
-            "description": "Desired output format. Must be either \"PNG\" or 
\"GIF\". Required."
+            "description": "Desired output format. Must be one of \"PNG\", 
\"GIF\", or \"CSV\". Required."
         },
         "orbit": {
             "name": "Orbit settings",
@@ -144,7 +144,7 @@ class Tomogram3D(NexusCalcHandler):
 
         output = compute_options.get_argument('output', None)
 
-        if output not in ['PNG', 'GIF']:
+        if output not in ['PNG', 'GIF', 'CSV']:
             raise NexusProcessingException(reason=f'Missing or invalid 
required parameter: output = {output}', code=400)
 
         orbit_params = compute_options.get_argument('orbit', '30,10')
@@ -628,3 +628,13 @@ class Tomogram3DResults(NexusResults):
 
         buffer.seek(0)
         return buffer.read()
+
+    def toCSV(self):
+        df = self.results()[['lon', 'lat', 'elevation', 'tomo_value']]
+
+        buf = BytesIO()
+
+        df.to_csv(buf, header=False, index=False)
+
+        buf.seek(0)
+        return buf.read()
diff --git a/analysis/webservice/webmodel/NexusResults.py 
b/analysis/webservice/webmodel/NexusResults.py
index 42c1ca0..8b0be6a 100644
--- a/analysis/webservice/webmodel/NexusResults.py
+++ b/analysis/webservice/webmodel/NexusResults.py
@@ -107,7 +107,6 @@ class NexusResults:
                 self.__meta = self.__meta  # Risky
             self._extendMeta(self.__meta, minLat, maxLat, minLon, maxLon, ds, 
startTime, endTime)
 
-    @staticmethod
     def filename(self):
         return 'download'
 

Reply via email to