Package: ipyidv
ipython_IDVPart of theEarthCube DRILSDOWN projectExtension for IPython Notebooks to provide line and cell magics to call out to Unidata'sIntegrated Data ViewerTo set it up:After installing Jupyter/iPython notebook softwarelike this, you will also need to install theipywidgets packageOnce Jupyter/iPython is ready, copyipython_IDV.pyto your local extensions directory,~/.ipython/extensionsTo run IDV commands from the Notebook, you will need to have installedIDV version 5.4 or later. Also, you need to set your IDV_HOME environment variable to be the IDV install directory, so that python can execute the command ${IDV_HOME}/runIDVYou also need to configure your IDV to accept connections from the ipython notebook. To do this set the following property in your local ~/.unidata/idv/DefaultIdv/idv.properties file:idv.monitorport = 8765Now you've done the 4 steps above.When you launchjupyter notebook, and run an iPython notebook in your browser, do this in the notebook:%load_ext ipython_IDVThat will give you a dashboard-style view of many of the ways the Notebook can launch and interact with The IDV, and find resources such as existing bundles, data catalogs, and more, including a link to the help section.If you plan on writing Python code in this notbeook (rather then merely capturing images and notes about a case study IDV session), you should import the Idv and Ramadda classes:from drilsdown import Idv
from drilsdown import RamaddaWe welcome your use cases! Email mapes at miami dot edu. See examplesbelow.Publishing to RAMADDA, using the IDV's capabilitiesIf you want to enable your IDV to publish to a RAMADDA server, getramaddaplugin.jar. Copy this file to your local IDV plugins directory (~/.unidata/idv/DefaultIdv/plugins). While it is not a plain text code file, it is included in this repo so all of the products that are required for running drilsdown can be found in
one place.Setting up your own RAMADDA to handle DRILSDOWN Case Study objectsIf you operate a RAMADDA, and want it to host DRILSDOWNCase Studydigital objects, getdrilsdownplugin.jar, put it in your RAMADDA installation'spluginsarea, and restart. It is produced from the code atRAMADDA drilsdown repositorybut is included here so all of the products that are required for running drilsdown can be found in one place.Examples of Python notebooks calling DRILSDOWN and The IDV:Here is an example of how to use the API to load an IDV bundle with different bounding boxes and capture imagesfrom drilsdown import Idv
Idv.fileUrl="http://geodesystems.com/repository/entry/get?entryid=d83e0924-008d-4025-9517-394e9f13712f"
bboxes = [[50,-130,40,-100],[50,-100,40,-75],[40,-130,20,-100],[40,-100,20,-75]]
for i in range(len(bboxes)):
    bbox=bboxes[i];
    Idv.loadBundle(Idv.fileUrl,bbox)
    Idv.makeImage(caption="BBOX:" + repr(bbox[0]) +"/" + repr(bbox[1]) +"  " + repr(bbox[2]) +"/" + repr(bbox[3]))from drilsdown import Idv
Idv.fileUrl="http://geodesystems.com/repository/entry/get?entryid=d83e0924-008d-4025-9517-394e9f13712f"
bboxes = [[50,-130,40,-100],[50,-100,40,-75],[40,-130,20,-100],[40,-100,20,-75]]
for i in range(len(bboxes)):
    bbox=bboxes[i];
    Idv.loadBundle(Idv.fileUrl,bbox);
    label = "BBOX:" + repr(bbox[0]) +"/" + repr(bbox[1]) +"  " + repr(bbox[2]) +"/" + repr(bbox[3]);
    Idv.makeMovie(caption=label,display=True, publish={'parent':'9adf32b5-aad4-4a8d-997e-216b9757d240',"name":"Image #" + repr(i)})The makeImage can take one of 2 forms of a publish argument. The first is a boolean and will result in the IDV popping up its RAMADDA publish dialog box where the image can be published.Idv.makeImage(caption=label, publish=True);In the second form the publish argument is a map. This directs the python to do the publishing directly to RAMADDA. The map can contain a parent member which is the entry id to publish to and a name member which is the entry name.Idv.makeImage(caption=label, publish={'parent':'9adf32b5-aad4-4a8d-997e-216b9757d240',"name":"Image #" + repr(i)})To enable direct publishing to RAMADDA you need to have your RAMADDA user name and password defined as environment variables:export RAMADDA_USER=
export RAMADDA_PASSWORD=