[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [babel] suggestion: wrap creation of graphics into try() block
From: |
Rainer M Krug |
Subject: |
Re: [O] [babel] suggestion: wrap creation of graphics into try() block |
Date: |
Tue, 21 Jan 2014 10:52:50 +0100 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 01/20/14, 19:38 , Eric Schulte wrote:
>>
>> I will check it a little bit longer and see that I can display
>> the error message in the dummy graphic. Should have it by
>> tomorrow.
>>
>
> Sounds good. Alternately, maybe you could get the R process to
> fail and print an error to STDERR so that the export will stop
> immediately and inform the user of the error.
I think it is better to catch the error and return with the
computations in the next block, because
1) a code block which produces a graph is most often an end point,
i.e. further blocks should (as I see it) not rely on the output of
this block
2) if the export continues, one can fix more then one error at a time,
so being more efficient.
3) If the export continues, it makes it possible to use this to create
placeholder graphs:
#+begin_src R :file TheFantasticGraph.pdf :results graphics
stop("This is a placeholder for a new fantastic graph"
#+end_src
Where TheFantasticGraph will display the message "This is a
placeholder for a new fantastic graph".
I have now added the error to the normal R output in addition to a
graph, but the export is not canceled.
>
>>
>> I'll send you the patch then.
>>
>
> Sounds great, thanks.
OK - here it is attached (my first patch to org :-) ) - let me know if
it is OK.
>
>>
>> This is the first time I really work with patches - I assume
>> "git diff" will give me the patch you need?
>>
>
> The best would be to create the patch with git format-patch, see
> http://orgmode.org/worg/org-contribute.html#sec-4-2.
>
> If the patch changes more than 10 lines, you'll need to fill out
> the FSF copyright assignment paperwork.
It is two lines, but it might be worth considering to d=o the
paperwork, as I am thinking about doing some other things on ob-R.el
>
> Thanks,
My pleasure,
Rainer
>
>>
>> Cheers,
>>
>> Rainer
>>
>>>
>>> Thanks,
>>>
>>>>
>>>> If somebody could look if this makes sense? (defun
>>>> org-babel-expand-body:R (body params &optional
>>>> graphics-file) "Expand BODY according to PARAMS, return the
>>>> expanded body." (let ((graphics-file (or graphics-file
>>>> (org-babel-R-graphical-output-file params)))) (mapconcat
>>>> #'identity (let ((inside (append (when (cdr (assoc :prologue
>>>> params)) (list (cdr (assoc :prologue params))))
>>>> (org-babel-variable-assignments:R params) (list body) (when
>>>> (cdr (assoc :epilogue params)) (list (cdr (assoc :epilogue
>>>> params))))))) (if graphics-file (append (list
>>>> (org-babel-R-construct-graphics-device-call graphics-file
>>>> params)) inside ;; my edits (list
>>>> "},error=function(e){plot(-1:1, -1:1, type='n');
>>>> text(0,0,'DUMMY')}); dev.off()")) inside)) ;; end "\n")))
>>>>
>>>>
>>>>
>>>> and
>>>>
>>>> (format "%s(%s=\"%s\"%s%s%s); tryCatch({" device filearg
>>>> out-file args (if extra-args "," "") (or extra-args ""))))
>>>>
>>>> in org-babel-R-construct-graphics-device-call
>>>>
>>>> It is working with the Dummy.
>>>>
>>>> Could somebody please check if this is working?
>>>>
>>>> I am leaving my changes and will see during my work if it is
>>>> fine.
>>>>
>>>> Cheers,
>>>>
>>>> Rainer
>>>>
>>>>
>>>>>
>>>>>>
>>>>>> If the code block which should create the graph would be
>>>>>> wrapped into a try() block, so that it would look like
>>>>>> the following:
>>>>>>
>>>>>> try( { pdf("./Correlation_1.pdf") IFN.mean <-
>>>>>> load.IFN.mean() grid <- load.grid.CASTANEA.average()
>>>>>> image(IFN.mean) } ) dev.off()
>>>>>>
>>>>>> The device would be closed even if an error occurred
>>>>>> during the execution of the code.
>>>>>>
>>>>>> But still, when exporting to pdf, the call to pdflatex
>>>>>> fails as only a empty pdf is available. So it becomes
>>>>>> necessary to go through the pdf log to identify the
>>>>>> graphs which failed.
>>>>>>
>>>>>> In this case it would be useful, to have a placeholder
>>>>>> grah in the final pdf, so that one can see which graphs
>>>>>> did not work.
>>>>>>
>>>>>> In addition, this could be used as placeholders (well -
>>>>>> they are placeholders) for to be created graphs, while
>>>>>> the text has already been written.
>>>>>>
>>>>>> So my second suggestion would be to include a
>>>>>> placeholder image, which would be used if the generation
>>>>>> of the actual graph fails. It would be great (but not
>>>>>> necessary) if the actual error message would be in the
>>>>>> image.
>>>>>
>>>>> Such an place holder image would be great, indeed.
>>>>>
>>>>>
>>>>> Thanks for bringing this up!
>>>>>
>>>>> Regards, Andreas
>>>>>
>>>>>
>>>>
>>>> -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc
>>>> (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>>>
>>>> Centre of Excellence for Invasion Biology Stellenbosch
>>>> University South Africa
>>>>
>>>> Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85
>>>> 62 59 98 Fax : +33 - (0)9 58 10 27 44
>>>>
>>>> Fax (D): +49 - (0)3 21 21 25 22 44
>>>>
>>>> email: address@hidden
>>>>
>>>> Skype: RMkrug
>>>
>>
>> -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc
>> (Conservation Biology, UCT), Dipl. Phys. (Germany)
>>
>> Centre of Excellence for Invasion Biology Stellenbosch
>> University South Africa
>>
>> Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62
>> 59 98 Fax : +33 - (0)9 58 10 27 44
>>
>> Fax (D): +49 - (0)3 21 21 25 22 44
>>
>> email: address@hidden
>>
>> Skype: RMkrug
>
- --
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa
Tel : +33 - (0)9 53 10 27 44
Cell: +33 - (0)6 85 62 59 98
Fax : +33 - (0)9 58 10 27 44
Fax (D): +49 - (0)3 21 21 25 22 44
email: address@hidden
Skype: RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJS3kNyAAoJENvXNx4PUvmCZXkIAMLm2LTuB8/FFZidI12yRhuF
N90DVeqYYcHpsJYTIk74W3EX2Wj6p4zjH84TXsVRUc3CRnh2EploU7MTYbdxtshC
VLTLsKxgfX8FKXz78ADeUqFmOL6KkJihS+P09mrkqwzq652YvGKbw3H0NLwQDfnR
Dp4K3wwYfArFtteCPNgZjBcUVgKF5guyfpEvdYEroR7bJ2wHp4FCaQuaKGXxIPfk
oXDDwiIjM7+cboZ4Nub6JnSu48GjTKbP0IkP81ejGpgl4JdE447Z13ikvRAeWfL1
dbWbL0aQSmdpeg/3M21Os9XtOcSesD21ueHUW5sblfAIAjIZRDpW++2jfCA6hS0=
=Hro3
-----END PGP SIGNATURE-----
0001-Graphic-Catch-errors-and-return-error-message.patch
Description: Text document
- [O] [babel] suggestion: wrap creation of graphics into try() block, Rainer M Krug, 2014/01/20
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Andreas Leha, 2014/01/20
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Rainer M Krug, 2014/01/20
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Eric Schulte, 2014/01/20
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Rainer M Krug, 2014/01/20
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Eric Schulte, 2014/01/20
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block,
Rainer M Krug <=
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Andreas Leha, 2014/01/21
- [O] :draft header argument for source block evaluation - WAS: [babel] suggestion: wrap creation of graphics into try() block, Rainer M Krug, 2014/01/21
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Eric Schulte, 2014/01/26
- Re: [O] [babel] suggestion: wrap creation of graphics into try() block, Rainer M Krug, 2014/01/27