def toCsv()

in analysis/webservice/algorithms/doms/subsetter.py [0:0]


    def toCsv(self):
        """
        Convert results to csv
        """
        dataset_results = self.results()
        csv_results = {}

        logging.info('Converting result to CSV')

        for dataset_name, results in dataset_results.items():
            rows = []

            headers = [
                'longitude',
                'latitude',
                'time'
            ]
            data_variables = list(set([keys for result in results for keys in result['data'].keys()]))
            data_variables.sort()

            if 'id' in list(set([keys for result in results for keys in result.keys()])):
                headers.append('id')

            headers.extend(data_variables)
            for i, result in enumerate(results):
                cols = []

                cols.append(result['longitude'])
                cols.append(result['latitude'])
                cols.append(datetime.utcfromtimestamp(result['time']).strftime('%Y-%m-%dT%H:%M:%SZ'))

                if 'id' in headers:
                    cols.append(result.get('id'))

                for var in data_variables:
                    cols.append(result['data'].get(var))
                if i == 0:
                    rows.append(','.join(headers))
                rows.append(','.join(map(str, cols)))

            csv_results[dataset_name] = '\r\n'.join(rows)

        logging.info('Finished converting result to CSV')
        return csv_results