[Thread Prev][Thread Next][Index]
[ferret_users] Python externat function with several arguments with different shapes.
- To: ferret_users@xxxxxxxx
- Subject: [ferret_users] Python externat function with several arguments with different shapes.
- From: Olivier Marti <olivier.marti@xxxxxxxxxxxx>
- Date: Thu, 23 Jan 2020 11:52:58 +0100
- Arc-authentication-results: i=3; mx.google.com; arc=pass (i=2); spf=softfail (google.com: domain of transitioning olivier.marti@xxxxxxxxxxxx does not designate 209.85.222.200 as permitted sender) smtp.mailfrom=olivier.marti@xxxxxxxxxxxx
- Arc-authentication-results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=lsce.ipsl.fr); spf=softfail (google.com: domain of transitioning olivier.marti@xxxxxxxxxxxx does not designate 65.153.203.174 as permitted sender) smtp.mailfrom=olivier.marti@xxxxxxxxxxxx
- Arc-authentication-results: i=1; mx.google.com; spf=pass (google.com: domain of olivier.marti@xxxxxxxxxxxx designates 194.254.240.34 as permitted sender) smtp.mailfrom=olivier.marti@xxxxxxxxxxxx
- Arc-message-signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:to:date:subject:mime-version:from; bh=HbxXX+jqKkPM6wD5aFy5L+oLZU+aLJOydc3mOCsCR+o=; b=MAQtXe9U02imAwY34UuNJgy4WDPlcDLbmJBBfdy43+G56pyS2yPlPUVdIs/V0Ahnlm EH7tk66X+RFwMAGq2I1h3EO43y7pe1fFQzxdqwAP93NeOftWjCvsYJhWkVKZm+MhC8q0 NiBsHRiR0kxiYYdjYthaSqfjLinBVDHva8gKxdfega2GBjn/AOrCaYvOt4lIWm2LZS5m qPXODG6CBTAPU1+xvBUm9wSWtpK2sOAB4Gsv4uEFROTEkeCmKOrUd+7QuVKmSyzGgyeQ gjS9Y88xaSrfyaBypTYnA0AUPuwEZ5g2HLD3bwPgxTy0f38Y3wz4OSetjv6NGv9JDodR lcaw==
- Arc-message-signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:date:message-id:subject:mime-version:from; bh=HbxXX+jqKkPM6wD5aFy5L+oLZU+aLJOydc3mOCsCR+o=; b=G25uQ/HThi0FlhWolaWz6ym19CxB2N8O6Zf3+tccxffwxi9cV+DBRERlUgaIt4pKkj ZGvimt4OBp2dtRwTdbEDQbW5cA/hsm1kp5ZFpqueJa2iGVQvtvqTPCLxCf7E71sFfxEk tjpFHd+QsErbSPyCAtHrehQmB5Zer13w36a78XH7JMpuPXsyc6jvsC7hGFRD2NHureX0 56cWwsxoABP+n3xMF7QRkrTi0WGsd+3LcZO4aJMTyfqDgTq+x6UxY6Pslcln2ieAkp+I 9F5qTvk8hgABW362u88gLIb66bKl2KGpg+qxmfQ4ev9/LyFqf93i6u4lT/CZQZ/Wbp+U z4FQ==
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:date:message-id:subject:mime-version:from; bh=HbxXX+jqKkPM6wD5aFy5L+oLZU+aLJOydc3mOCsCR+o=; b=jbqqLjJZYl06cxpti7UX5N7AzGKM8PXSB0X8iJRrlRbA5j5acWohfF041pmGed9qPs EvDxhYOfQ2dyS1mOTATIZv2WMnCy2QjMMH+1E+n7BX76deFPqDBwaMwZMbh7BVntd2rx 6KxezAHUvHVC+l3p1S1DwJeHS0bQZxvdBrBPFONq+v9mkP++5v68kCtlk7o2NE0BOXUr wk0QQRJ2l3ZgYLcPY07fWVEmo28dV1CHtL06yHgwKbJwWVp5ajtjZEwGFc2rH9nc8Go3 jNee/IVShADaNZh6lDd6XZzmQ316PUKv0Z0gbDy+7nEYf14VnJmIqaavdVuYG6UKMaEd DRKg==
- Arc-seal: i=3; a=rsa-sha256; t=1579776786; cv=pass; d=google.com; s=arc-20160816; b=dgAlXOCy819HbZDLf6uCghr6pWj/rfJd73yNLaNF4Pz46UtifANkfnTSlN6xn3MMLJ yqlEibYqrDM9OimNR5chJ+ho8DusQvN0ZNE8rENOgQ/yI/oYoHhK/z/5AHjIHjKm20jc ZbrRoL41y+1I1bbsSZz6gF/7iIUHnC2wB9qK1K7iuMggleTJ/YE9YIERt+in3KNKeywE tEVkK3IwC/9pg2a/PiLElIbnDRhwSmBNtOTiB+fMNmMiT2Se8zcvCovbIyKAxuOiQ3Ka Ar5WUQsA6prwC/aRHuley+BNf4WQuFrhWy08tHckzajEYiteiin6vwY83q5LLZI0PE7q 2PSA==
- Arc-seal: i=2; a=rsa-sha256; t=1579776781; cv=pass; d=google.com; s=arc-20160816; b=y98g6to6eUNgeTN8wJFt3UiBdnpoGsAHm9ji8HDoHQaxuTb/wAv9i6ktVVSnf6oqr3 Tdf27LEkSMVrTZhx9n/YYL8Pv9AORlihnyjAUzx67uRdkHL+qRNASNedBClydT/WyrkC 8mmwZ9bTNZ+28SlmMRfxdONlS7UDsPs4jXOIvKa0TC42SzU4Gxv8QE4Mbz5cL4jxs+nu NjFj0/eb+7kJfsp+3O0IHZPfGJdf67cBXcKpeGAH0/YeO02TEzoiOswjEpMhRuAA6nLz NaFsEQj1DFdT39zWoZdQB69hrbtL6Pk+jL2k+5iVAAhAlwZ5BcE6Dy26TgjiyXfxPPrH BpTA==
- Arc-seal: i=1; a=rsa-sha256; t=1579776779; cv=none; d=google.com; s=arc-20160816; b=NjMBdDJU5Qor9hacjcvrUX36Z/lTUnb6P58HpoFS18onpnbjWoxgqQIKMjK4ieAXKu vAJ8C4nbOZzYt0EqhtM0gu0n5htBcsV6Cv9nYXI/nKElWkRIUjyjJPZ607oLwN9+Viww HvmUgDA8dcNp/mgJfamiM423uIxeZ8fISj7zGv6bDDIxI94gPmC49bwCZWSkqIAI35xq vdO6/DueVY3ihjL5GAk80uVmyWZhHvIW5eQdjlATg08kp3WHwgBEyipjNBwtAByj90BY OgRA5LINnGv774xCs+AUaOrD8o3E5dT27ws3yRe6Fcu6yxVnq8DqXKIu2a3MySxooLjt pVPQ==
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=noaa.gov; s=google; h=sender:from:mime-version:subject:date:to:message-id :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive; bh=HbxXX+jqKkPM6wD5aFy5L+oLZU+aLJOydc3mOCsCR+o=; b=XGkDE1E1OZJhvTuSSg4wSgQgEwtBC39NooI3SdV40/Gma2RBxUdLpNZXB2ImSwA7w8 CRLSOg/deAyRTDAn1PlyGxKPo5b0BIIQD23z8fmGGDiFAxE6lUZCbgwEpYeWI3CDxHmw i0icwdp9n3+aIYGnNnL8AvQ9qPvUhqz08krMQcPFNtQJyE+w2voTJtpIuTKl2cXFQT7C bvp+/rs42+qTISska7GUorbEttpZcT/fsLOsRBUI4hlWrH7/GJe1oTe7k3vv+KERC3B6 dGPcxoxhY7+TnEygOpBt8pRyj1xEkMqxfDO1sHYtU4l1PCJSL2MQ2EkXqwvfnClrJdy6 HKWw==
- List-archive: <https://groups.google.com/a/noaa.gov/group/ferret_users/>
- List-help: <https://support.google.com/a/noaa.gov/bin/topic.py?topic=25838>, <mailto:ferret_users+help@noaa.gov>
- List-id: <ferret_users.noaa.gov>
- List-post: <https://groups.google.com/a/noaa.gov/group/ferret_users/post>, <mailto:ferret_users@noaa.gov>
- Mailing-list: list ferret_users@xxxxxxxx; contact ferret_users+owners@xxxxxxxx
- Sender: owner-ferret_users@xxxxxxxx
Hello everybody,
I'm trying to build a python external function (PyEF). It should build an histogram from a list of classes. So the input arguments will be a Ferret array, and a list of classes. With a call like :
histo( SIICECOV[L=1,K=1]) , XSEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
or
histo( XSEQUENCE(SIICECOV[L=1,K=1]), XSEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
or
histo( XSEQUENCE(SIICECOV[L=1,K=1]), YSEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
But it always fails. For instance :
> STAT histo( XSEQUENCE(SIICECOV[L=1,K=1]), XSEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
**ERROR: inconsistent sizes of data regions: X axis
XSEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) has 5 points (I=1:5)
expression has 9216 points (I=0001:9216)
STAT histo( XSEQUENCE(SIICECOV[L=1,K=1]), XSEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
Command file, command group, or REPEAT execution aborted
or
> STAT histo( XSEQUENCE(SIICECOV[L=1,K=1]), XYEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
**ERROR: command syntax: XYEQUENCE({0., 0.1, 0.2, 1.0, 2.0})
unknown function "XYEQUENCE"
STAT histo( XSEQUENCE(SIICECOV[L=1,K=1]), XYEQUENCE({0., 0.1, 0.2, 1.0, 2.0}) )
Command file, command group, or REPEAT execution aborted
Before performing any computation, I cannot find a way to write an external function that accept two arguments with different shapes. Any hint or exemple ?
Thanks,
Olivier
The python function :
Example Ferret external function written in Python
'''
import numpy
import pyferret
def ferret_init(id):
'''Creates and returns the initialization dictionary for this PyEF'''
initdict = { "numargs" : 2, "descript": "Test function",
"argnames": ("A", "Histogram boundaries"),
}
return initdict
def ferret_compute(id, result, result_bad_flag, inputs, input_bad_flags):
''' Essai d'histogramme
ARG1 is the array.
ARG2 is the list of class boundaries
'''
badmask = ( numpy.fabs(inputs[pyferret.ARG1] - input_bad_flags[pyferret.ARG1]) < 1.0E-5 )
goodmask = numpy.logical_not(badmask)
result[badmask] = input_bad_flags[pyferret.ARG1]
result[goodmask] = inputs[pyferret.ARG1][goodmask]
—
Olivier Marti - LSCE Bât 714 p. 1049
Tel : +33 1 69 08 77 27
mailto:olivier.marti@xxxxxxxxxxxx
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
[Thread Prev][Thread Next][Index]
Contact Us
Dept of Commerce /
NOAA /
OAR /
PMEL /
Ferret
Privacy Policy | Disclaimer | Accessibility Statement