From: Paul W. <pwaddell@u.washington.edu> - 2005-12-02 15:49:05
|
Can anyone tell me what the trick is to save a png or jpeg of the map composition in the OpenEV window from a script? We've had no trouble generating the image, but then have needed to save it from the menu. Paul |
From: Gillian W. <gil...@ve...> - 2005-12-02 17:21:07
|
Hi, If the view with your map in it is the active view, you should be able to do something like what is done in gvprint.py. Along the lines of: cv = gview.app.sel_manager.get_active_view() width = cv.get_width() height = cv.get_height() # Use 1 below for colour image, 0 for Greyscale err = cv.print_to_file( width, height, '_temp.tif','GTiff', 1 ) if err == 0: gdal.GetDriverByName('PNG').CreateCopy('outputfile.png', gdal.Open('_temp.tif'),1) os.unlink('_temp.tif') Gillian Paul Waddell wrote: > Can anyone tell me what the trick is to save a png or jpeg of the map > composition in the OpenEV window from a script? We've had no trouble > generating the image, but then have needed to save it from the menu. > > Paul > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click > _______________________________________________ > Openev-discuss mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/openev-discuss |
From: Liming W. <lmwang@u.washington.edu> - 2005-12-02 20:37:44
|
Thanks, Gilian. But the images we exported using print_to_file() method fro= m OpenEV active views are blank. It works fine if I click on the menu File/Print, but if I call print_to_file() method from an active view object in my own script, I get a blank image of the same size with return error status of 0. Here are some attempts I've tried. app =3D gviewapp.GViewApp() app.new_view(None) gview.app =3D app app.subscribe('quit',gtk.mainquit) imgds =3D gdalnumeric.OpenArray(a_numpy_array) imgraster =3D gview.GvRaster(dataset=3Dimgds) imglayer =3D gview.GvRasterLayer(raster=3Dimgraster) aview =3D gview.app.view_manager.get_active_view() aview.add_layer(imglayer) err1=3Daview.print_to_file(aview.get_width(), aview.get_height(), '_temp11.tif','GTiff', 0) pview=3Dgview.app.sel_manager.get_active_view() err2=3Dpview.print_to_file(pview.get_width(),pview.get_height(), '_temp12.tif','GTiff',1) I even tried to initialize a GvPrintDialog window, setup the settings and then call print_cb() method, I still got blank images. One trick I found is that for print_to_file() to work I have to put it afte= r gtk.mainloop(), but the script has lost control (?) of OpenEV after gtk.mainloop() and I have to close OpenEV window for the script to contintu= e to run. I tried to use methods from gviewapp in place of gtk.mainloop() to avoid losing the control, and since I don't know gtk programming well enough, I didn't find anything that works. One more thing related to this is, is it possible in a script to open one single OpenEV window and open different projects in one (sequentially) or many views? For now we have to close the OpenEV window, and then open a new one later in the script, which is very slow and the OpenEV windows previously opened will hang there until the script exits. Thanks a lot, Liming. On 12/2/05, Gillian Walter <gil...@ve...> wrote: > > Hi, > > If the view with your map in it is the active view, you should be able > to do something like what is done in gvprint.py. Along the lines of: > > cv =3D gview.app.sel_manager.get_active_view() > width =3D cv.get_width() > height =3D cv.get_height() > > # Use 1 below for colour image, 0 for Greyscale > err =3D cv.print_to_file( width, height, '_temp.tif','GTiff', 1 ) > if err =3D=3D 0: > gdal.GetDriverByName('PNG').CreateCopy('outputfile.png', > > gdal.Open('_temp.tif'),1) > os.unlink('_temp.tif') > > > Gillian > > Paul Waddell wrote: > > Can anyone tell me what the trick is to save a png or jpeg of the map > > composition in the OpenEV window from a script? We've had no trouble > > generating the image, but then have needed to save it from the menu. > > > > Paul > > > > > > ------------------------------------------------------- > > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > > files > > for problems? Stop! Download the new AJAX search engine that makes > > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > > http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > > _______________________________________________ > > Openev-discuss mailing list > > Ope...@li... > > https://lists.sourceforge.net/lists/listinfo/openev-discuss > > > > ------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. Do you grep through log > files > for problems? Stop! Download the new AJAX search engine that makes > searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! > http://ads.osdn.com/?ad_id=3D7637&alloc_id=3D16865&op=3Dclick > _______________________________________________ > Openev-discuss mailing list > Ope...@li... > https://lists.sourceforge.net/lists/listinfo/openev-discuss > |
From: Gillian W. <gil...@ve...> - 2005-12-02 21:23:40
|
Hi, I guess you aren't running the script from within OpenEV's python shell, but from a regular shell then? The blank views might make sense then, since things don't really get properly initialized until the gtk main loop is called. If you called the script from OpenEV's python shell (replacing the first 4 lines below with import gview; app=gview.app; app.new_view(None)), I would expect things to work better because you would already be in the gtk loop, but if you're trying to create a standalone script for an operational environment, I'm not sure what to suggest. I wonder if it would be possible for you to get something working using gtk threads? Note that if you use gtk threads, you'll need the FW_Tools openev builds because python/gtk threads are disabled in the Vexcel openev builds (actually, I'm not certain they are enabled in Frank's builds, but they definitely aren't in the Vexcel ones). I'm afraid I haven't looked at the details of trying something like this with gtk threads though, so I'm not sure how it would work or even if it is possible. Gillian Liming Wang wrote: > Thanks, Gilian. But the images we exported using print_to_file() method from > OpenEV active views are blank. It works fine if I click on the menu > File/Print, but if I call print_to_file() method from an active view object > in my own script, I get a blank image of the same size with return error > status of 0. Here are some attempts I've tried. > > app = gviewapp.GViewApp() > app.new_view(None) > gview.app = app > app.subscribe('quit',gtk.mainquit) > > imgds = gdalnumeric.OpenArray(a_numpy_array) > imgraster = gview.GvRaster(dataset=imgds) > imglayer = gview.GvRasterLayer(raster=imgraster) > > aview = gview.app.view_manager.get_active_view() > aview.add_layer(imglayer) > err1=aview.print_to_file(aview.get_width(), aview.get_height(), > '_temp11.tif','GTiff', 0) > > pview=gview.app.sel_manager.get_active_view() > err2=pview.print_to_file(pview.get_width(),pview.get_height(), > '_temp12.tif','GTiff',1) > > I even tried to initialize a GvPrintDialog window, setup the settings and > then call print_cb() method, I still got blank images. > > One trick I found is that for print_to_file() to work I have to put it after > gtk.mainloop(), but the script has lost control (?) of OpenEV after > gtk.mainloop() and I have to close OpenEV window for the script to contintue > to run. I tried to use methods from gviewapp in place of gtk.mainloop() to > avoid losing the control, and since I don't know gtk programming well > enough, I didn't find anything that works. > > One more thing related to this is, is it possible in a script to open one > single OpenEV window and open different projects in one (sequentially) or > many views? For now we have to close the OpenEV window, and then open a new > one later in the script, which is very slow and the OpenEV windows > previously opened will hang there until the script exits. > > Thanks a lot, > Liming. > > On 12/2/05, Gillian Walter <gil...@ve...> wrote: > >>Hi, >> >>If the view with your map in it is the active view, you should be able >>to do something like what is done in gvprint.py. Along the lines of: >> >>cv = gview.app.sel_manager.get_active_view() >>width = cv.get_width() >>height = cv.get_height() >> >># Use 1 below for colour image, 0 for Greyscale >>err = cv.print_to_file( width, height, '_temp.tif','GTiff', 1 ) >>if err == 0: >> gdal.GetDriverByName('PNG').CreateCopy('outputfile.png', >> >> gdal.Open('_temp.tif'),1) >> os.unlink('_temp.tif') >> >> >>Gillian >> >>Paul Waddell wrote: >> >>>Can anyone tell me what the trick is to save a png or jpeg of the map >>>composition in the OpenEV window from a script? We've had no trouble >>>generating the image, but then have needed to save it from the menu. >>> >>>Paul >>> >>> >>>------------------------------------------------------- >>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>>files >>>for problems? Stop! Download the new AJAX search engine that makes >>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>_______________________________________________ >>>Openev-discuss mailing list >>>Ope...@li... >>>https://lists.sourceforge.net/lists/listinfo/openev-discuss >> >> >> >>------------------------------------------------------- >>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>files >>for problems? Stop! Download the new AJAX search engine that makes >>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>_______________________________________________ >>Openev-discuss mailing list >>Ope...@li... >>https://lists.sourceforge.net/lists/listinfo/openev-discuss >> > > |
From: Gillian W. <gil...@ve...> - 2005-12-06 20:35:15
|
Hi, Without seeing your script, it is difficult to say what could be going on. I'm also not sure what you mean when you say the two view windows get "messed up". If things are hanging, it could be a problem with how gtk is being used in the context of your script. Gillian Liming Wang wrote: > Thanks, Gillian and Frank! It seems there isn't an easy solution then. Yes, > we're running the script from a regular shell, since we need to run our > models to get the data before they are ready for presenting in OpenEV. And > because those models could take days to run and consume quite a lot > memory/computer resources, running it from OpenEV's python shell might not > be an option for us. I may explore the possibility of multi-threading gtk. > > I have one more question. In our standalone script, after I bring up an > OpenEV window and call the gtk loop, even if I quite the OpenEV window, > it'll hang there until the script exits from python shell. If I open up a > new OpenEV windows in the script, those two view windows get messed up. Did > I do something wrong with OpenEV, or I have only gtk to blame? I've > subscribed the quit event by put app.subscribe('quit',gtk.mainquit) in the > script. > > Thanks again, > Liming. > > On 12/2/05, Gillian Walter < gil...@ve...> wrote: > >>Hi, >> >>I guess you aren't running the script from within OpenEV's python shell, >>but from a regular shell then? The blank views might make sense then, >>since things don't really get properly initialized until the gtk main >>loop is called. If you called the script from OpenEV's python shell >>(replacing the first 4 lines below with import gview; app=gview.app; >>app.new_view(None)), I would expect things to work better because you >>would already be in the gtk loop, but if you're trying to create a >>standalone script for an operational environment, I'm not sure what to >>suggest. I wonder if it would be possible for you to get something >>working using gtk threads? Note that if you use gtk threads, you'll >>need the FW_Tools openev builds because python/gtk threads are disabled >>in the Vexcel openev builds (actually, I'm not certain they are enabled >>in Frank's builds, but they definitely aren't in the Vexcel ones). I'm >>afraid I haven't looked at the details of trying something like this >>with gtk threads though, so I'm not sure how it would work or even if it >>is possible. >> >> >>Gillian >> >> >> >>Liming Wang wrote: >> >>>Thanks, Gilian. But the images we exported using print_to_file() method >> >>from >> >>>OpenEV active views are blank. It works fine if I click on the menu >>>File/Print, but if I call print_to_file() method from an active view >> >>object >> >>>in my own script, I get a blank image of the same size with return error >>>status of 0. Here are some attempts I've tried. >>> >>>app = gviewapp.GViewApp() >>>app.new_view(None) >>>gview.app = app >>>app.subscribe('quit',gtk.mainquit) >>> >>>imgds = gdalnumeric.OpenArray(a_numpy_array) >>>imgraster = gview.GvRaster(dataset=imgds) >>>imglayer = gview.GvRasterLayer(raster=imgraster) >>> >>>aview = gview.app.view_manager.get_active_view() >>>aview.add_layer(imglayer) >>>err1=aview.print_to_file(aview.get_width(), aview.get_height(), >>>'_temp11.tif','GTiff', 0) >>> >>>pview= gview.app.sel_manager.get_active_view() >>>err2=pview.print_to_file(pview.get_width(),pview.get_height(), >>>'_temp12.tif','GTiff',1) >>> >>>I even tried to initialize a GvPrintDialog window, setup the settings >> >>and >> >>>then call print_cb() method, I still got blank images. >>> >>>One trick I found is that for print_to_file() to work I have to put it >> >>after >> >>>gtk.mainloop(), but the script has lost control (?) of OpenEV after >>>gtk.mainloop() and I have to close OpenEV window for the script to >> >>contintue >> >>>to run. I tried to use methods from gviewapp in place of gtk.mainloop() >> >>to >> >>>avoid losing the control, and since I don't know gtk programming well >>>enough, I didn't find anything that works. >>> >>>One more thing related to this is, is it possible in a script to open >> >>one >> >>>single OpenEV window and open different projects in one (sequentially) >> >>or >> >>>many views? For now we have to close the OpenEV window, and then open a >> >>new >> >>>one later in the script, which is very slow and the OpenEV windows >>>previously opened will hang there until the script exits. >>> >>>Thanks a lot, >>>Liming. >>> >>>On 12/2/05, Gillian Walter <gil...@ve... > wrote: >>> >>> >>>>Hi, >>>> >>>>If the view with your map in it is the active view, you should be able >>>>to do something like what is done in gvprint.py. Along the lines of: >>>> >>>>cv = gview.app.sel_manager.get_active_view() >>>>width = cv.get_width() >>>>height = cv.get_height() >>>> >>>># Use 1 below for colour image, 0 for Greyscale >>>>err = cv.print_to_file( width, height, '_temp.tif','GTiff', 1 ) >>>>if err == 0: >>>> gdal.GetDriverByName('PNG').CreateCopy(' outputfile.png', >>>> >>>> gdal.Open('_temp.tif'),1) >>>> os.unlink('_temp.tif') >>>> >>>> >>>>Gillian >>>> >>>>Paul Waddell wrote: >>>> >>>> >>>>>Can anyone tell me what the trick is to save a png or jpeg of the map >>>>>composition in the OpenEV window from a script? We've had no trouble >>>>>generating the image, but then have needed to save it from the menu. >>>>> >>>>>Paul >>>>> >>>>> >>>>>------------------------------------------------------- >>>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>>>>files >>>>>for problems? Stop! Download the new AJAX search engine that makes >>>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>>_______________________________________________ >>>>>Openev-discuss mailing list >>>>>Ope...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/openev-discuss >>>> >>>> >>>> >>>>------------------------------------------------------- >>>>This SF.net email is sponsored by: Splunk Inc. Do you grep through log >>>>files >>>>for problems? Stop! Download the new AJAX search engine that makes >>>>searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! >>>>http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >>>>_______________________________________________ >>>>Openev-discuss mailing list >>>>Ope...@li... >>>>https://lists.sourceforge.net/lists/listinfo/openev-discuss >>>> >>> >>> >> > |