3
3
Cartesian data.
4
4
"""
5
5
6
+ from typing import Literal
7
+
8
+ import numpy as np
6
9
import pandas as pd
7
10
from pygmt .clib import Session
8
11
from pygmt .helpers import (
@@ -172,10 +175,10 @@ def delaunay_triples(
172
175
y = None ,
173
176
z = None ,
174
177
* ,
175
- output_type = "pandas" ,
176
- outfile = None ,
178
+ output_type : Literal [ "pandas" , "numpy" , "file" ] = "pandas" ,
179
+ outfile : str | None = None ,
177
180
** kwargs ,
178
- ):
181
+ ) -> pd . DataFrame | np . ndarray | None :
179
182
"""
180
183
Delaunay triangle based gridding of Cartesian data.
181
184
@@ -204,16 +207,8 @@ def delaunay_triples(
204
207
{table-classes}.
205
208
{projection}
206
209
{region}
207
- outfile : str or None
208
- The name of the output ASCII file to store the results of the
209
- histogram equalization in.
210
- output_type : str
211
- Determine the format the xyz data will be returned in [Default is
212
- ``pandas``]:
213
-
214
- - ``numpy`` - :class:`numpy.ndarray`
215
- - ``pandas``- :class:`pandas.DataFrame`
216
- - ``file`` - ASCII file (requires ``outfile``)
210
+ {output_type}
211
+ {outfile}
217
212
{verbose}
218
213
{binary}
219
214
{nodata}
@@ -226,13 +221,13 @@ def delaunay_triples(
226
221
227
222
Returns
228
223
-------
229
- ret : pandas.DataFrame or numpy.ndarray or None
224
+ ret
230
225
Return type depends on ``outfile`` and ``output_type``:
231
226
232
- - None if ``outfile`` is set (output will be stored in file set by
227
+ - `` None`` if ``outfile`` is set (output will be stored in file set by
233
228
``outfile``)
234
- - :class:`pandas.DataFrame` or :class:`numpy.ndarray` if
235
- ``outfile`` is not set (depends on ``output_type``)
229
+ - :class:`pandas.DataFrame` or :class:`numpy.ndarray` if ``outfile`` is not
230
+ set (depends on ``output_type``)
236
231
237
232
Note
238
233
----
@@ -243,25 +238,15 @@ def delaunay_triples(
243
238
"""
244
239
output_type = validate_output_table_type (output_type , outfile )
245
240
246
- with GMTTempFile ( suffix = ".txt" ) as tmpfile :
247
- with Session () as lib :
248
- with lib .virtualfile_in (
241
+ with Session ( ) as lib :
242
+ with (
243
+ lib .virtualfile_in (
249
244
check_kind = "vector" , data = data , x = x , y = y , z = z , required_z = False
250
- ) as vintbl :
251
- if outfile is None :
252
- outfile = tmpfile .name
253
- lib .call_module (
254
- module = "triangulate" ,
255
- args = build_arg_string (kwargs , infile = vintbl , outfile = outfile ),
256
- )
257
-
258
- if outfile == tmpfile .name :
259
- # if user did not set outfile, return pd.DataFrame
260
- result = pd .read_csv (outfile , sep = "\t " , header = None )
261
- elif outfile != tmpfile .name :
262
- # return None if outfile set, output in outfile
263
- result = None
264
-
265
- if output_type == "numpy" :
266
- result = result .to_numpy ()
267
- return result
245
+ ) as vintbl ,
246
+ lib .virtualfile_out (kind = "dataset" , fname = outfile ) as vouttbl ,
247
+ ):
248
+ lib .call_module (
249
+ module = "triangulate" ,
250
+ args = build_arg_string (kwargs , infile = vintbl , outfile = vouttbl ),
251
+ )
252
+ return lib .virtualfile_to_dataset (output_type = output_type , vfname = vouttbl )
0 commit comments