Example #1
0
	def save_image(self,mi=None):
		try:
			window=self.canvas.get_window()		
			self.image=GdkImlib.create_image_from_drawable(window,None,-50,-100,4500,1800)
			self.image.save_image(self.imgfname)
		except:
			GtkExtra.message_box('No Image available',("OK",))
Example #2
0
	def run_script(self, fname):
		if not fname or os.path.exists(fname):
			GtkExtra.message_box("Run","Invalid filename",("OK",))
			return
		args = GtkExtra.input_box("Arguments",
				 "Enter any command line arguments")
		if args == None: return
		os.system(VT_CMD+'python "'+fname+'" ' + args + ' &')
Example #3
0
 def raster_open_by_name(self,filename):
     dataset = gdal.Open(filename)
     if dataset is None:
         GtkExtra.message_box('Error',
                              'Unable to open '+filename,
                              ('OK',) )
         return None
     return dataset
Example #4
0
    def process_help(self, action, widget):
        GtkExtra.message_box("Test Application",
                             """Test Application for Python-Gtk.
		This is free software.
		This application tests key press events and text display.
		Any entered key (printable character) is displayed on
		screen. <F1> toggle medium and bold font. <F2> permits
		to change font size.
		""", ("OK", ),
                             pixmap='question.xpm')
Example #5
0
def auto_file_load(filename):
    if filename != None:
        try:
            d = load_data_file(filename)
        except:
            GtkExtra.message_box(title="Error Loading File",
                                 message="Problems Loading File: " + file_name,
                                 buttons=("OK", ))
            return None
        setup_loaded_chart(d, filename)
Example #6
0
    def file_open_by_name(self, filename, *args):
        if filename[len(filename)-4:] == '.shp':
            self.file_open_shape_by_name(filename)
            return
        
        if filename[len(filename)-4:] == '.SHP':
            self.file_open_shape_by_name(filename)
            return
        
        dataset = gdal.Open(filename)
        if dataset is None:
            GtkExtra.message_box('Error',
                      'Unable to open '+filename,
                      ('OK',) )
            return

        self.files.append(dataset)

        for band_index in range(1,1+min(3,dataset.RasterCount)):
            band = dataset.GetRasterBand(band_index)
            
            interp = band.GetRasterColorInterpretation()
            if interp == gdal.GCI_PaletteIndex:
                raster = gview.GvRaster(dataset=dataset,sample=gview.SMSample,
                                        real=band_index)
            else:
                raster = gview.GvRaster(dataset=dataset,real=band_index)
            
            raster.set_name(filename)
            gview.undo_register(raster)
            
            view = self.view_manager.get_active_view()
            if view is None:
                return
            
            options = []
            if gview.get_preference('gcp_warp_mode') is not None \
               and gview.get_preference('gcp_warp_mode') == 'no':
                options.append(('raw','yes'))
                
            raster_layer = gview.GvRasterLayer(raster, options)
                
            if interp == gdal.GCI_RedBand:
                raster_layer.texture_mode_set(1,(1.0,0.0,0.0,1.0))
                raster_layer.blend_mode_set(gview.RL_BLEND_ADD,1,1)
            elif interp == gdal.GCI_GreenBand:
                raster_layer.texture_mode_set(1,(0.0,1.0,0.0,1.0))
                raster_layer.blend_mode_set(gview.RL_BLEND_ADD,1,1)
            elif interp == gdal.GCI_BlueBand:
                raster_layer.texture_mode_set(1,(0.0,0.0,1.0,1.0))
                raster_layer.blend_mode_set(gview.RL_BLEND_ADD,1,1)
                
            view.add_layer(raster_layer)
Example #7
0
 def reload_file(self, fname):
     if not os.path.isfile(fname):
         GtkExtra.message_box("File Not Found", fname + " was not found.",
                              ("OK", ))
     dir = os.path.dirname(fname)
     base = os.path.basename(fname)
     if dir not in sys.path: sys.path.insert(0, dir)
     if string.lower(base[-3:]) == '.py': base = base[:-3]
     elif string.lower(base[-4:]) == '.pyc': base = base[:-4]
     if not sys.modules.has_key(base):
         self.interp.run('import ' + base)
     else:
         self.interp.run('import ' + base)
         self.interp.run('reload(' + base + ')')
Example #8
0
	def reload_file(self, fname):
		if not os.path.isfile(fname):
			GtkExtra.message_box("File Not Found", fname +
					     " was not found.", ("OK",))
		dir = os.path.dirname(fname)
		base = os.path.basename(fname)
		if dir not in sys.path: sys.path.insert(0, dir)
		if   string.lower(base[-3:]) == '.py':  base = base[:-3]
		elif string.lower(base[-4:]) == '.pyc': base = base[:-4]
		if not sys.modules.has_key(base):
			self.interp.run('import ' + base)
		else:
			self.interp.run('import ' + base)
			self.interp.run('reload(' + base + ')')
Example #9
0
def new_button(_b):
    # popup little dialog to get the title of the function.
    # if user enters a name, start the editor so that the new function can be
    # edited.
    name = GtkExtra.input_box(title="Enter Function Name",
                              message="Name of the new function is? ",
                              modal=TRUE)
    if function_list.has_key(name):
        GtkExtra.message_box(title="Duplicate Function Name",
                             message="Function name already exists",
                             buttons=("OK"),
                             pixmap=None,
                             modal=TRUE)
    else:
        run_editor_on(_make_path() + '/' + name)
Example #10
0
    def __init__(self, rlayer):

        gtk.GtkWindow.__init__(self)

        import gview

        self.rlayer = rlayer
        raster = rlayer.get_data()
        self.xsize = raster.get_dataset().RasterXSize
        self.ysize = raster.get_dataset().RasterYSize

        self.set_policy(gtk.TRUE, gtk.TRUE, gtk.FALSE)
        # self.set_usize(self.xsize, self.ysize)
        self.viewarea = gview.GvViewArea()
        self.viewarea.add_layer(self.rlayer)
        self.viewarea.size(self.xsize, self.ysize)
        shell = gtk.GtkVBox(spacing=0)
        self.add(shell)

        # Print menu
        menuf = GtkExtra.MenuFactory()
        self.menuf = menuf
        menuf.add_entries([('File/Print', None, self.print_cb)])

        shell.pack_start(menuf, expand=gtk.FALSE)

        shell.pack_start(self.viewarea)

        self.connect('delete-event', self.close)
        self.show_all()

        self.viewarea.fit_extents(0, self.ysize, self.xsize, -self.ysize)
Example #11
0
        def src_load(_button,*args):
            fname=GtkExtra.file_sel_box(title="Select GDAL Dataset")
            if fname is None:
                return
            ds=gdal.OpenShared(fname)
            if ds is None:
                gvutils.error('Not a valid gdal dataset!')
                return

            dict={}
            for i in range(1,ds.RasterCount+1):
                curband=fname + '.band[' + str(i) + ']'
                dict[gtk.GtkListItem(curband)] = (ds,i,curband)
                
            if srctoggle.get_active() == gtk.TRUE:
                slist=vrtutils.GetSimilarFiles(fname)
                for nname in slist:
                    ds = gdal.OpenShared(nname)
                    if ds is None:
                        continue
                    for i in range(1,ds.RasterCount+1):
                        curband=nname + '.band[' + str(i) + ']'
                        dict[gtk.GtkListItem(curband)] = (ds,i,curband)

            self.add_input_bands(dict)    
Example #12
0
	def process_help(self, action, widget):
		dlg=GtkExtra.message_box("Test Application",
					 "Test Application for Python-Gtk.\n" +
					 "This is free software.\n" +
					 "This application tests mouse and " +
					 "key press events.", ("OK",),
					 pixmap='question.xpm')
Example #13
0
        def src_load(_button, *args):
            fname = GtkExtra.file_sel_box(title="Select GDAL Dataset")
            if fname is None:
                return
            ds = gdal.OpenShared(fname)
            if ds is None:
                gvutils.error('Not a valid gdal dataset!')
                return

            dict = {}
            for i in range(1, ds.RasterCount + 1):
                curband = fname + '.band[' + str(i) + ']'
                dict[gtk.GtkListItem(curband)] = (ds, i, curband)

            if srctoggle.get_active() == gtk.TRUE:
                slist = vrtutils.GetSimilarFiles(fname)
                for nname in slist:
                    ds = gdal.OpenShared(nname)
                    if ds is None:
                        continue
                    for i in range(1, ds.RasterCount + 1):
                        curband = nname + '.band[' + str(i) + ']'
                        dict[gtk.GtkListItem(curband)] = (ds, i, curband)

            self.add_input_bands(dict)
Example #14
0
 def file_saveas(self, mi=None):
     fname = GtkExtra.file_save_box(modal=FALSE)
     if not fname: return
     self.fname = fname
     self.set_title(os.path.basename(fname))
     self.new = 0
     self.file_save()
Example #15
0
    def add_property_column(self,*args):
        """ Add a property column """

        import GtkExtra
        pname=GtkExtra.input_box(title="Property Name",
              message="Please enter a name for the property")

        if ((pname is None) or (len(pname) == 0)):
            return

        current_columns=self.pgugrid.get_current_columns()
        mems=current_columns[0]
        titles=current_columns[1]
        editables=current_columns[2]
        formats=current_columns[3]
        types=current_columns[4]
        nodatas=current_columns[5]
        justify=current_columns[6]
        tjustify=current_columns[7]

        mems.append(pname)
        titles.append(pname)
        editables.append(1)
        formats.append(None)
        types.append('string')
        nodatas.append('')
        justify.append(0)
        tjustify.append(2)

        self.pgugrid.define_columns(members=mems,titles=titles,
             editables=editables,formats=formats,types=types,
             nodata=nodatas,justify=justify,title_justify=tjustify)
Example #16
0
    def create_header(self,filename):
        fmt=self.format_list[self.format_menu.get_history()]
        dtype=self.type_list[self.type_menu.get_history()]
        dr=gdal.GetDriverByName(fmt)
        tlist=string.split(dr.GetMetadata()["DMD_CREATIONDATATYPES"])
        if dtype not in tlist:
            gvutils.error(fmt+' format does not support '+dtype+' data type!')
            return
        
        if fmt == 'PAux':
            self.create_paux_header(filename,dtype)
        else:
            fname,ext = os.path.splitext(filename)
            vrtname = fname+'.vrt'
                
            fname=pgufilesel.GetFileName(title="Select VRT Save Name",
                                         default_filename=vrtname)
            if fname is None:
                return
            if os.path.exists(fname):
	        resp = GtkExtra.message_box('Confirmation', \
		        fname + ' exists. Overwrite?', ('Yes','No'))
                if resp == 'No':
                    return
            lines=self.create_vrt_lines(filename)
            fh=open(fname,'w')
            fh.writelines(lines)
            fh.close()
 def showConfirm(self, mess):
     i = GtkExtra.message_box(
         "GtkSnapshot", str(mess),
         [self.trans_text("YES"),
          self.trans_text("NO")])
     if i == self.trans_text("YES"): return 1
     return 0
Example #18
0
	def file_saveas(self, mi=None):
		fname = GtkExtra.file_save_box(modal=FALSE)
		if not fname: return
		self.fname = fname
		self.set_title(os.path.basename(fname))
		self.new = 0
		self.file_save()
Example #19
0
 def file_save(self, mi=None):
     if self.new:
         self.file_saveas()
         return
     try:
         pos = 0
         length = self.text.get_length()
         fd = open(self.fname, "w")
         while pos < length:
             buf = self.text.get_chars(pos, min(pos + BLOCK_SIZE, length))
             if buf != None: fd.write(buf)
             pos = pos + BLOCK_SIZE
         self.dirty = 0
     except:
         GtkExtra.message_box("Save", "Error saving file " + self.fname,
                              ("OK", ))
Example #20
0
 def ok_button(self, _button):
     entry = self.combo1.entry.get_text()
     bars = self.spinbutton1.get_value_as_int()
     if bars < 0:
         bars = 0
     if entry not in VALID_COMBO_ITEMS:
         GtkExtra.message_box(title='Bad Value',
                              message='Scale is invalid',
                              buttons=('OK', ),
                              pixmap=None,
                              modal=TRUE)
         self.selection['extrabars'] = None
         self.selection['scale'] = None
     else:
         self.selection['extrabars'] = bars
         self.selection['scale'] = entry
     self.quit()
Example #21
0
	def file_save(self, mi=None):
		if self.new:
			self.file_saveas()
			return
		try:
			pos = 0
			length = self.text.get_length()
			fd = open(self.fname, "w")
			while pos < length:
				buf = self.text.get_chars(pos,
						  min(pos+BLOCK_SIZE, length))
				if buf != None: fd.write(buf)
				pos = pos + BLOCK_SIZE
			self.dirty = 0
		except:
			GtkExtra.message_box("Save", "Error saving file " +
					     self.fname, ("OK",))
Example #22
0
    def create_paux_header(self,filename,datatype):    
	(path, ext) = os.path.splitext(filename)
	auxname = path + ".aux"
	if os.path.isfile(auxname):
	    resp = GtkExtra.message_box('Confirmation', \
		    auxname + ' exists. Overwrite?', ('Yes','No'))
            if resp == 'No':
                return

	# Take the image parameters
	header = long(self.header_entry.get_text())
	width = long(self.width_entry.get_text())
	height = long(self.height_entry.get_text())
	bands = long(self.bands_entry.get_text())
        aux_type_dict={'Byte':'8U','Int16':'16S','UInt16':'16U',
                       'Float32':'32R'}
	aux_type_list = ['8U', '16S', '16U', '32R']
	type = aux_type_dict[datatype]
	gdaltype = gdal.GetDataTypeByName(datatype)
	interleaving = self.interleave_list[self.interleave_menu.get_history()]
	datasize = gdal.GetDataTypeSize(gdaltype) / 8

	# Calculate offsets
	pixel_offset = []
	line_offset = []
	image_offset = []
	if interleaving is 'Pixel':
	    for i in range(bands):
		pixel_offset.append(datasize * bands)
		line_offset.append(datasize * width * bands)
		image_offset.append(header + datasize * i)
	elif interleaving is 'Band':
	    for i in range(bands):
		pixel_offset.append(datasize)
		line_offset.append(datasize * width)
		image_offset.append(header + datasize * width * height * i)
	elif interleaving is 'Line':
	    for i in range(bands):
		pixel_offset.append(datasize)
		line_offset.append(datasize * width * bands)
		image_offset.append(header + datasize * width * i)
	else:
	    raise 'Unsupported interleaving type!'
	
	aux_swap_list = ['Swapped', 'Unswapped']
	swap = aux_swap_list[self.swap_menu.get_history()]

	# Write out the auxilary file
	aux = open(auxname, "wt")
	aux.write("AuxilaryTarget: " +  os.path.basename(filename) + '\n')
	aux.write("RawDefinition: " + str(width) + ' ' \
		+ str(height) + ' ' + str(bands) + '\n')
	for i in range(bands):
	    aux.write("ChanDefinition-" + str(i + 1) + ': ' + type + ' ' \
		    + str(image_offset[i]) + ' ' + str(pixel_offset[i]) \
		    + ' ' + str(line_offset[i]) + ' ' + swap + '\n')
	aux.close()
	aux = None
Example #23
0
	def file_open(self, mi=None):
		fname = GtkExtra.file_open_box(modal=FALSE)
		if fname:
			ew = edit.EditWindow(quit_cb=self.rem_editwin)
			ew.load_file(fname)
			self.editwins.append(ew)
			self.add_py_menu(ew)
			ew.show()
			ew.set_usize(0,0)
Example #24
0
 def file_open(self, mi=None):
     fname = GtkExtra.file_open_box(modal=FALSE)
     if fname:
         ew = edit.EditWindow(quit_cb=self.rem_editwin)
         ew.load_file(fname)
         self.editwins.append(ew)
         self.add_py_menu(ew)
         ew.show()
         ew.set_usize(0, 0)
Example #25
0
def load_file(file_name):
    try:
        d = load_data_file(file_name)
    except Exception, msg:
        mb = GtkExtra.message_box(title="Error Loading File",
                                  message="Problems Loading File: " +
                                  file_name,
                                  buttons=("OK", ))
        return None
Example #26
0
 def chk_save(self):
     if self.dirty:
         ret = GtkExtra.message_box(
             "Unsaved File", (self.fname or "Untitled") +
             " has not been saved\n" + "Do you want to save it?",
             ("Yes", "No", "Cancel"))
         if ret == None or ret == "Cancel": return 1
         if ret == "Yes": self.file_save()
     return 0
Example #27
0
 def load_file(self, fname):
     try:
         fd = open(fname)
         self.text.freeze()
         self.text.delete_text(0, self.text.get_length())
         buf = fd.read(BLOCK_SIZE)
         while buf != '':
             self.text.insert_defaults(buf)
             buf = fd.read(BLOCK_SIZE)
         self.text.thaw()
         self.text.get_vadjustment().set_value(0)
         self.text.queue_draw()
         self.set_title(os.path.basename(fname))
         self.fname = fname
         self.dirty = 0
         self.new = 0
     except:
         GtkExtra.message_box('Edit', "Can't open " + fname, ("OK", ))
Example #28
0
 def process_help(self, action, widget):
     dlg = GtkExtra.message_box(
         "Test Application",
         "Test Application for Python-Gtk.\n"
         + "This is free software.\n"
         + "This application tests mouse and "
         + "key press events.",
         ("OK",),
         pixmap="question.xpm",
     )
Example #29
0
	def load_file(self, fname):
		try:
			fd = open(fname)
			self.text.freeze()
			self.text.delete_text(0, self.text.get_length())
			buf = fd.read(BLOCK_SIZE)
			while buf != '':
				self.text.insert_defaults(buf)
				buf = fd.read(BLOCK_SIZE)
			self.text.thaw()
			self.text.get_vadjustment().set_value(0)
			self.text.queue_draw()
			self.set_title(os.path.basename(fname))
			self.fname = fname
			self.dirty = 0
			self.new = 0
		except:
			GtkExtra.message_box('Edit', "Can't open " + fname,
					     ("OK",))
Example #30
0
	def chk_save(self):
		if self.dirty:
			ret = GtkExtra.message_box("Unsaved File",
						   (self.fname or "Untitled")+
						   " has not been saved\n" +
						   "Do you want to save it?",
						   ("Yes", "No", "Cancel"))
			if ret == None or ret == "Cancel": return 1
			if ret == "Yes": self.file_save()
		return 0
Example #31
0
 def process_file(self, action, widget):
     if action == 0:
         print "File:<unknwon>"
     elif action == 1:
         print "File:New"
     elif action == 2:
         print "File:Open"
         print GtkExtra.file_open_box(modal=FALSE), "chosen"
     elif action == 3:
         print "FileSave"
         dlg = GtkExtra.message_box("Test Application", "Not implemented", ("OK",), pixmap="bomb.xpm")
     elif action == 4:
         print "File:Save As"
         print GtkExtra.file_save_box(modal=FALSE), "chosen"
     elif action == 5:
         print "File:Close"
     elif action == 6:
         print "File:Exit"
         mainquit()
Example #32
0
    def att_update_cb(self, *args):
        if self.text_contents == self.text.get_chars(0, -1):
            return

        if self.selected_shape is None:
            return

        shapes = self.layer.get_parent()
        shape = shapes[self.selected_shape]
        if shape is None:
            return

        shape = shape.copy()

        lines = string.split(self.text.get_chars(0, -1), '\n')
        for line in lines:
            tokens = string.split(line, ':', 1)
            if len(tokens) == 2:
                value = string.strip(tokens[1])
                shape.set_property(tokens[0], value)
                property_exists = 0
                for cprop in shapes.get_schema():
                    if cprop[0] == tokens[0]:
                        property_exists = 1
                if property_exists != 1:
                    ftype = self.new_field_types[
                        self.new_field_type_menu.get_history()]

                    response = \
                       GtkExtra.message_box('Confirmation',
                         'Create new ' + ftype + '-type property ' + tokens[0] + '?' ,
                                            ('Yes','No'))
                    if response == 'Yes':
                        try:
                            fwidth = int(self.new_field_width_entry.get_text())
                        except:
                            gvutils.error('Field width must be an integer!')
                            continue

                        if ftype == 'float':
                            try:
                                fprec = int(
                                    self.new_field_width_entry.get_text())
                            except:
                                gvutils.error(
                                    'Precision width must be an integer!')
                                continue
                        else:
                            fprec = 0

                        shapes.add_field(tokens[0], ftype, fwidth, fprec)

        shapes[self.selected_shape] = shape
        self.gui_update()
 def getFromFile(self, *args):
     if self.sel_file2:
         try:
             os.popen("rm -f core")  # Delete any core dumps
             os.popen("rm -f core.*")  # Delete any core dumps
             os.chdir(self.extractDirectory(self.sel_file2))
         except:
             pass
     f = GtkExtra.file_sel_box(self.trans_text("Select A File..."))
     if not f: return
     self.sel_file2 = f
     if not f.endswith("/"): self.fromfileentry.set_text(str(f))
Example #34
0
def create_about(_button):
    v4l_version = camera.get_value('V4L Driver version')
    if v4l_version == '':
        v4l_version = 'unknown'
    cpia_version = camera.get_value('CPIA Version')
    cpia_pnpid = camera.get_value('CPIA PnP-ID')
    vp_version = camera.get_value('VP-Version')
    text="CPiA camera control program (Version:"+cpia_control_version+")"+\
          "\nV4l Driver version: "+v4l_version+\
"""
Detected Camera:
"""+\
    "CPIA Version: "+cpia_version+"\n"+\
    "CPIA Pn-PID: "+cpia_pnpid+"\n"+\
    "VP-Version: "+vp_version+"\n"+\
"""
See http://webcam.sourceforge.net/ for more details

Copyright(c) 1999/2000/2004 by
Peter Pregler ([email protected])
"""
    GtkExtra.message_box("About CPiA control", text, ("Close", ))
Example #35
0
    def create_cb(self, *args):
        bands = self.input_frame.get_output_bands()
        if len(bands) == 0:
            gvutils.error('No output bands specified!')
            return

        vrtbase = [gdal.CXT_Element, 'VRTDataset']
        vrtbase.append([
            gdal.CXT_Attribute, 'rasterXSize',
            [gdal.CXT_Text, str(bands[0][0].RasterXSize)]
        ])
        vrtbase.append([
            gdal.CXT_Attribute, 'rasterYSize',
            [gdal.CXT_Text, str(bands[0][0].RasterYSize)]
        ])

        # Metadata is currently taken from first output band.
        # This may be updatable later.
        mbase = vrtutils.serializeMetadata(bands[0][0])
        if mbase is not None:
            vrtbase.append(mbase)

        gbase = self.geo_frame.get_geocoding()
        for item in gbase:
            vrtbase.append(item)

        outband = 1
        for item in bands:
            dict = {}
            dict['band'] = outband
            dict['SourceBand'] = item[1]
            dict['ColorInterp'] = 'Undefined'
            bbase = vrtutils.serializeBand(item[0], opt_dict=dict)
            vrtbase.append(bbase)
            outband = outband + 1

        vrtlines = gdal.SerializeXMLTree(vrtbase)

        vrtds = gdal.OpenShared(vrtlines)

        if args[1] == 'Save':
            fname = GtkExtra.file_sel_box(title="Save File")
            if fname is None:
                return
            driver = gdal.GetDriverByName('VRT')
            driver.CreateCopy(fname, vrtds)
        elif args[1] == 'New':
            self.app.new_view()
            self.app.open_gdal_dataset(vrtds)
        else:
            self.app.open_gdal_dataset(vrtds)
Example #36
0
    def att_update_cb(self,*args):
        if self.text_contents == self.text.get_chars(0,-1):
            return

        if self.selected_shape is None:
            return

        shapes = self.layer.get_parent()
        shape = shapes[self.selected_shape]
        if shape is None:
            return

        shape = shape.copy()
        
        lines = string.split(self.text.get_chars(0,-1),'\n')
        for line in lines:
            tokens = string.split(line,':',1)
            if len(tokens) == 2:
                value = string.strip(tokens[1])
                shape.set_property(tokens[0],value)
                property_exists=0
                for cprop in shapes.get_schema():
                    if cprop[0] == tokens[0]:
                        property_exists=1
                if property_exists != 1:
                    ftype = self.new_field_types[self.new_field_type_menu.get_history()]
                       
                    response = \
                       GtkExtra.message_box('Confirmation',
                         'Create new ' + ftype + '-type property ' + tokens[0] + '?' ,
                                            ('Yes','No'))
                    if response == 'Yes':
                        try:
                            fwidth = int(self.new_field_width_entry.get_text())
                        except:
                            gvutils.error('Field width must be an integer!')
                            continue
                        
                        if ftype == 'float':
                            try:
                                fprec = int(self.new_field_width_entry.get_text())
                            except:
                                gvutils.error('Precision width must be an integer!')
                                continue
                        else:
                            fprec = 0
                            
                        shapes.add_field(tokens[0],ftype,fwidth,fprec)

        shapes[self.selected_shape] = shape
        self.gui_update()
Example #37
0
    def create_cb(self,*args):
        bands = self.input_frame.get_output_bands()
        if len(bands) == 0:
            gvutils.error('No output bands specified!')
            return

        vrtbase = [gdal.CXT_Element,'VRTDataset']
        vrtbase.append([gdal.CXT_Attribute,'rasterXSize',
                     [gdal.CXT_Text,str(bands[0][0].RasterXSize)]])
        vrtbase.append([gdal.CXT_Attribute,'rasterYSize',
                     [gdal.CXT_Text,str(bands[0][0].RasterYSize)]])

        # Metadata is currently taken from first output band.
        # This may be updatable later.
        mbase = vrtutils.serializeMetadata(bands[0][0])
        if mbase is not None:
            vrtbase.append(mbase)
            
        gbase = self.geo_frame.get_geocoding()
        for item in gbase:
            vrtbase.append(item)

        outband = 1
        for item in bands:
            dict={}
            dict['band']=outband
            dict['SourceBand'] = item[1]
            dict['ColorInterp'] = 'Undefined'
            bbase = vrtutils.serializeBand(item[0],opt_dict=dict)
            vrtbase.append(bbase)
            outband=outband+1

        vrtlines = gdal.SerializeXMLTree(vrtbase)
    
        vrtds = gdal.OpenShared(vrtlines)
        
        if args[1] == 'Save':
            fname = GtkExtra.file_sel_box(title="Save File")
            if fname is None:
                return
            driver = gdal.GetDriverByName('VRT')
            driver.CreateCopy(fname,vrtds)
        elif args[1] == 'New':
            self.app.new_view()
            self.app.open_gdal_dataset(vrtds) 
        else:
            self.app.open_gdal_dataset(vrtds)
Example #38
0
 def do_run(self, _b=None):
     line = GtkExtra.input_box("Execute Code", "Enter code to execute:")
     if line == None: return
     locals = self.curframe.f_locals
     globals = self.curframe.f_globals
     globals['__privileged__'] = 1
     try:
         code = compile(line + '\n', '<stdin>', 'single')
         exec code in globals, locals
     except:
         if type(sys.exc_type) == type(''):
             exc_type_name = sys.exc_type
         else:
             exc_type_name = sys.exc_type.__name__
         self.set_status('*** ' + exc_type_name + ': ' + str(sys.exc_value))
         return
     self.update_var_listing()
Example #39
0
	def do_run(self, _b=None):
		line = GtkExtra.input_box("Execute Code",
					  "Enter code to execute:")
		if line == None: return
		locals = self.curframe.f_locals
		globals = self.curframe.f_globals
		globals['__privileged__'] = 1
		try:
			code = compile(line + '\n', '<stdin>', 'single')
			exec code in globals, locals
		except:
			if type(sys.exc_type) == type(''):
				exc_type_name = sys.exc_type
			else: exc_type_name = sys.exc_type.__name__
			self.set_status('*** ' + exc_type_name + ': ' +
					str(sys.exc_value))
			return
		self.update_var_listing()
Example #40
0
    def add_py_menu(self, ew):
        def run(b=None, ew=ew, app=self):
            app.run_script(ew.fname)

        def dbg(b=None, ew=ew, app=self):
            app.debug_script(ew.fname)

        def prf(b=None, ew=ew, app=self):
            app.profile_script(ew.fname)

        py_menu = GtkExtra.MenuFactory(MENU_FACTORY_MENU)
        py_menu.add_entries([('Run...', None, run), ('Debug...', None, dbg),
                             ('Profile...', None, prf)])
        mi = GtkMenuItem('Python')
        ew.mf.insert(mi, 2)
        mi.show()
        mi.set_submenu(py_menu)
        ew.mf.hide()
        ew.mf.show()
Example #41
0
 def __init__(self):
     GtkWindow.__init__(self, WINDOW_TOPLEVEL)
     self.connect("destroy", self.quit)
     self.connect("delete_event", self.quit)
     self.set_title("Python")
     self.set_usize(475, 325)
     self.main_box = GtkVBox()
     self.add(self.main_box)
     self.main_box.show()
     hdlbox = GtkHandleBox()
     self.main_box.pack_start(hdlbox, expand=FALSE)
     hdlbox.show()
     mf = GtkExtra.MenuFactory()
     mf.add_entries([
         ('File/New', '<control>N', self.file_new),
         ('File/Open...', '<control>O', self.file_open),
         ('File/<separator>', None, None),
         ('File/Exit', '<control>Q', self.file_exit),
         ('Edit/Copy', '<control>C', self.edit_copy),
         ('Edit/Paste', '<control>V', self.edit_paste),
         ('Edit/Clear', None, self.edit_clear),
         ('Python/Reload Module...', None, self.python_reload),
         ('Python/<separator>', None, None),
         ('Python/Run...', None, self.python_run),
         ('Python/Debug...', None, self.python_debug),
         ('Python/Profile...', None, self.python_prof),
         ('Help/About...', None, self.help_about),
     ])
     self.add_accel_group(mf.accelerator)
     hdlbox.add(mf)
     mf.show()
     self.mf = mf
     self.interp = gtkcons.Console(namespace={
         '__builtins__': __builtins__,
         '__name__': '__main__',
         '__doc__': None
     },
                                   quit_cb=self.quit)
     self.main_box.pack_start(self.interp)
     self.interp.show()
     self.interp.init()
     self.editwins = []
Example #42
0
    def copy_gcps_cb(self,*args):
        """ Copy gcps from an existing gdal dataset. """
        fname=GtkExtra.file_sel_box(title="Select GDAL Dataset")
        if fname is None:
            return

        try:
            fh=gdal.OpenShared(fname)
        except:
            gvutils.error('Unable to open '+fname+' as a GDAL dataset!')
            return
        
        gcps=fh.GetGCPs()
        prj=fh.GetGCPProjection()
        self.clear_gcps()
        for gcp in gcps:
            ngcp=CopyGDALGCP(gcp)
            self.gcplist.append(ngcp)
        self.gcpgrid.refresh()
            
        self.gcpprjbox.set_input_projection(prj)
Example #43
0
    def copy_gcps_cb(self, *args):
        """ Copy gcps from an existing gdal dataset. """
        fname = GtkExtra.file_sel_box(title="Select GDAL Dataset")
        if fname is None:
            return

        try:
            fh = gdal.OpenShared(fname)
        except:
            gvutils.error('Unable to open ' + fname + ' as a GDAL dataset!')
            return

        gcps = fh.GetGCPs()
        prj = fh.GetGCPProjection()
        self.clear_gcps()
        for gcp in gcps:
            ngcp = CopyGDALGCP(gcp)
            self.gcplist.append(ngcp)
        self.gcpgrid.refresh()

        self.gcpprjbox.set_input_projection(prj)
Example #44
0
    def create_menu(self):
        mf = GtkExtra.MenuFactory()

        mf.add_entries([('File/New', '<control>N', self.file_new),
                        ('File/Open...', '<control>O', self.file_open),
                        ('File/Save', '<control>S', self.file_save),
                        ('File/Save As...', None, self.file_saveas),
                        ('File/<separator>', None, None),
                        ('File/Exit', '<control>Q', self.file_exit),
                        ('Edit/Cut', '<control>X', self.edit_cut),
                        ('Edit/Copy', '<control>C', self.edit_copy),
                        ('Edit/Paste', '<control>V', self.edit_paste),
                        ('Edit/Clear', None, self.edit_clear),
                        ('Edit/<separator>', None, None),
                        ('Edit/Find...', None, self.edit_find),
                        ('Edit/Find Next', None, self.edit_find_next),
                        ('Help/About...', None, self.help_about)])
        # activate key bindings ...
        self.add_accel_group(mf.accelerator)
        self.mf = mf
        return mf
Example #45
0
def file_realtime_update(_menu, entry_name):
    if real_time_entries.has_key(entry_name):
        script = real_time_entries[entry_name]
        if os.access(script, os.R_OK | os.X_OK):
            name = os.tempnam('/tmp/', 'chase')
            f = open(name, 'w+')
            f.close()
            rt = os.system(script + " -t " + name)
            if rt != 0:
                mb = GtkExtra.message_box(title="Error loading data from %s" %
                                          (entry_name, ),
                                          message="External source failed",
                                          buttons=("OK", ))
                return None
            print "system command returned %d" % (rt, )
            update_chase_with_realtime_data(name)
            #os.unlink(name)
        else:
            sys.write.stderr("Can't find the script: %s" % (script, ))
    else:
        sys.write.stderr("realtime update called with invalid name: %s" \
                         % (entry_name,))
Example #46
0
 def do_edit(self, _b=None):
     locals = self.curframe.f_locals
     varname = self.vardisp.varnames[self.vardisp.selected]
     val = repr.repr(locals[varname])
     value = GtkExtra.input_box("Edit Variable",
                                "Enter new value for" + varname + ":", val)
     if value == None: return
     globals = self.curframe.f_globals
     globals['__privileged__'] = 1
     try:
         val = eval(value, globals, locals)
         self.curframe.f_locals[varname] = val
     except:
         if type(sys.exc_type) == type(''):
             exc_type_name = sys.exc_type
         else:
             exc_type_name = sys.exc_type.__name__
         self.set_status('*** ' + exc_type_name + ': ' + str(sys.exc_value))
         return
     row = self.vardisp.selected
     self.vardisp.set_text(row, 1, type(val).__name__)
     self.vardisp.set_text(row, 2, repr.repr(val))
Example #47
0
	def do_edit(self, _b=None):
		locals = self.curframe.f_locals
		varname = self.vardisp.varnames[self.vardisp.selected]
		val = repr.repr(locals[varname])
		value = GtkExtra.input_box("Edit Variable",
				"Enter new value for" +	varname + ":", val)
		if value == None: return
		globals = self.curframe.f_globals
		globals['__privileged__'] = 1
		try:
			val = eval(value, globals, locals)
			self.curframe.f_locals[varname] = val
		except:
			if type(sys.exc_type) == type(''):
				exc_type_name = sys.exc_type
			else: exc_type_name = sys.exc_type.__name__
			self.set_status('*** ' + exc_type_name + ': ' +
					str(sys.exc_value))
			return
		row = self.vardisp.selected
		self.vardisp.set_text(row, 1, type(val).__name__)
		self.vardisp.set_text(row, 2, repr.repr(val))
Example #48
0
    def add_property_column(self, *args):
        """ Add a property column """

        import GtkExtra
        pname = GtkExtra.input_box(
            title="Property Name",
            message="Please enter a name for the property")

        if ((pname is None) or (len(pname) == 0)):
            return

        current_columns = self.pgugrid.get_current_columns()
        mems = current_columns[0]
        titles = current_columns[1]
        editables = current_columns[2]
        formats = current_columns[3]
        types = current_columns[4]
        nodatas = current_columns[5]
        justify = current_columns[6]
        tjustify = current_columns[7]

        mems.append(pname)
        titles.append(pname)
        editables.append(1)
        formats.append(None)
        types.append('string')
        nodatas.append('')
        justify.append(0)
        tjustify.append(2)

        self.pgugrid.define_columns(members=mems,
                                    titles=titles,
                                    editables=editables,
                                    formats=formats,
                                    types=types,
                                    nodata=nodatas,
                                    justify=justify,
                                    title_justify=tjustify)
Example #49
0
def getprjinfo():
    fname=GtkExtra.file_sel_box(title="Select GDAL Dataset or WKT text file")
    if fname is None:
        return None
    try:
        fh=gdal.OpenShared(fname)
        prj=fh.GetProjection()
        if prj == '':
            prj=fh.GetGCPProjection()
    except:
        fh=open(fname,'r')
        prj=string.strip(fh.readline())
        # prj files from shapes seem to have
        # an extra character at the end
        if prj[-1:] == '\x00':
            prj=prj[:-1]

    sr=osr.SpatialReference()
    val=sr.ImportFromWkt(prj)
    if val != 0:
        gvutils.error('Invalid projection information in '+fname+'!')
        return None

    return prj
Example #50
0
def getprjinfo():
    fname = GtkExtra.file_sel_box(title="Select GDAL Dataset or WKT text file")
    if fname is None:
        return None
    try:
        fh = gdal.OpenShared(fname)
        prj = fh.GetProjection()
        if prj == '':
            prj = fh.GetGCPProjection()
    except:
        fh = open(fname, 'r')
        prj = string.strip(fh.readline())
        # prj files from shapes seem to have
        # an extra character at the end
        if prj[-1:] == '\x00':
            prj = prj[:-1]

    sr = osr.SpatialReference()
    val = sr.ImportFromWkt(prj)
    if val != 0:
        gvutils.error('Invalid projection information in ' + fname + '!')
        return None

    return prj
Example #51
0
	def python_prof(self, mi=None):
		fname = GtkExtra.file_sel_box("Profile")
		if fname:
			self.profile_script(fname)
Example #52
0
def __gtk(title, message):
    import GtkExtra
    GtkExtra.message_box(title, message, ['Ok'])
Example #53
0
			if fname:
				try:
					f=open(fname, "r")
				except IOError:
					return
				self.w_text.freeze()
				while TRUE:
					line = f.readline()
					if line == "":
						break
					self.w_text.insert_defaults(line)
				self.w_text.thaw()
		elif action == 3:
			print "File:Save"
			GtkExtra.message_box("Test Application",
					     "Not implemented",
					     pixmap='bomb.xpm')
		elif action == 4:
			print "File:Save As"
			print GtkExtra.file_save_box(modal=FALSE), "chosen"
		elif action == 5:
			print "File:Close"
		elif action == 6:
			print "File:Exit"
			mainquit()

	def process_edit(self, action, widget):
		if action == 0: print "Edit:<unknown>"
		elif action == 1:
			print "Edit:Cut"
			self.w_text.cut_clipboard(0)
Example #54
0
	def file_open(self, mi=None):
		if self.chk_save(): return
		fname = GtkExtra.file_open_box(modal=FALSE)
		if not fname: return
		self.load_file(fname)
    def save_cb(self, *args):
        if self.copy_but.active:
            outfile=GtkExtra.file_sel_box(title=_("Output File"))
            if outfile is None:
                return

        ds = self.viewarea1.active_layer().get_parent().get_dataset()
        bright_val = math.floor(self.bright_adjustment.value*255/100)
        contrast_val = (100+self.contrast_adjustment.value)/100
        gamma_val = self.gamma_adjustment.value

        outarray = Numeric.zeros((ds.RasterCount,ds.RasterYSize,ds.RasterXSize),typecode=Numeric.UnsignedInt8)

        try:
            size = ds.RasterYSize
            import EasyDialogs
            progress = EasyDialogs.ProgressBar(title='Working...',maxval=size)
        except:
            pass

        lut = []
        for i in range(256):
            value = i + math.floor(bright_val)
            if value < 0 :
                value = 0
            elif value >= 255:
                value = 255
            if contrast_val != 1.0:
                value = value * contrast_val
            if value < 0 :
                value = 0
            elif value >= 255:
                value = 255
            if gamma_val != 1:
                value = 255*math.pow(float(abs(value))/255,1.0/gamma_val)
            if value < 0 :
                value = 0
            elif value >= 255:
                value = 255
            value = int(value)
            lut.append(value)

        lutarray = Numeric.array((lut),typecode=Numeric.UnsignedInt8)

        for m in range(ds.RasterCount):
            inband = ds.GetRasterBand(m+1)
            for i in range(ds.RasterYSize):
                #inarray = inband.ReadAsArray()
                inarray = inband.ReadAsArray(0, i, inband.XSize, 1, inband.XSize, 1)[0].astype(Numeric.UnsignedInt8)
                #outarray = Numeric.zeros(inarray.shape)

                try:
                    progress.label('Processing Band: ' + str(m+1) + ', Line: '+str(i))
                    progress.set(i)
                except:
                    pass

                outarray[m][i].flat[:] = Numeric.take(lutarray,inarray.flat)

        res_ds = gdalnumeric.OpenArray(outarray,ds)
        res_ds = gview.manager.add_dataset(res_ds)

        view = gview.app.sel_manager.get_active_view_window()
        if self.copy_but.active:
            driver = ds.GetDriver()
            driver.CreateCopy(outfile,res_ds)
            view.file_open_by_name(outfile)
            self.destroy()
        elif self.owrite_but.active:
            for layer in gview.app.sel_manager.get_active_view().list_layers():
                if gvutils.is_of_class( layer.__class__, 'GvRasterLayer' ) == 1:
                    if layer.get_parent().get_dataset().GetDescription() == ds.GetDescription():
                        gview.app.sel_manager.get_active_view().remove_layer(layer)

            fname = ds.GetDescription()
            driver = ds.GetDriver()
            driver.CreateCopy(fname,res_ds)
            view.file_open_by_name(fname)
            view.refresh_cb()
            self.destroy()
                
        del ds
        del res_ds
        del outarray
Example #56
0
	def help_about(self, mi):
		GtkExtra.message_box("Edit Window", "Copyright (C) 1998  " +
				     "James Henstridge\n" +
				     "This program is covered by the GPL>=2",
				     ("OK",))
Example #57
0
    def export_cb(self,*args):
        ipfile=self.frame_dict['Files'].get('Input')
        opfile=self.frame_dict['Files'].get('Output')
        if os.path.isfile(opfile):
            resp=GtkExtra.message_box('Confirmation',opfile +
                                      ' exists.  Overwrite?',('Yes','No'))
            if resp == 'No':
                return
        elif len(opfile) == 0:
            gvutils.error('No output filename entered!')
            return
            
        use_viewscale=0
        
        rast = gdal.OpenShared(ipfile, gdalconst.GA_ReadOnly)
        if rast is None:
            if len(ipfile) == 0:
                gvutils.error('Please specify an input file!')
            else:
                gvutils.error('Unable to open ' + ipfile + ' as a GDAL supported file!')
            return

        # Catch the case where the input file consists of in-memory VRT lines
        # and the output format is also VRT.  In this case, the new VRT would
        # no longer be valid once openev was exited because the input file
        # is not on disk (filename looks something like '<VRTDataset....').
        # If the user is just exporting the file as-is, simply copying the
        # original lines to disk will suffice.  However, if they want to
        # window or scale, we'd need more complicated manipulations.  For now,
        # give an error message in that case.
        opformat=self.format_list[self.format_menu.get_history()]
        
        if (ipfile[0] == '<') and (opformat == 'VRT'):
            if self.res_list[self.res_menu.get_history()] != 'Full':
                msg='Only full output resolution is currently\n'+\
                    'supported for export of in-memory VRTs\n'+\
                    'to on-disk VRTs.'
                gvutils.error(msg)
                return
            
            if ( (self.button_dict['Mode'].get_active()) and
                ((self.button_dict['IP_window'].get_active()) or
                (self.button_dict['Scale'].get_active()) or
                (len(self.optentry.get_text()) > 0))):
                msg='Scaling, windowing, and advanced creation\n'+\
                    'options are not yet supported for export of \n'+\
                    'in-memory VRTs to on-disk VRTs'
                gvutils.error(msg)
                return
                
            linelist=string.split(ipfile,'\n')
            newlinelist=[]
            for item in linelist:
                newlinelist.append(item+'\n')
            fh=open(opfile,'w')
            fh.writelines(newlinelist)
            fh.close()
            
            ovrs=self._overview_list[self.overview_menu.get_history()]
            if ovrs != 'None':
                outds=gdal.OpenShared(opfile)
                if outds is None:
                    gvutils.error('Error opening '+opfile+' for overview creation!')
                    return
                
                progress = pguprogress.PGUProgressDialog( 'Building overviews...',
                                                  cancel = gtk.TRUE )
                if ovrs is 'Nearest':
                    outds.BuildOverviews( "nearest",
                                       callback = progress.ProgressCB )
                else:
                    outds.BuildOverviews( "average_magphase",
                                       callback = progress.ProgressCB )
                progress.destroy()
            
            return
        
            
        
        vrt_opts=vrtutils.VRTCreationOptions(rast.RasterCount)

        if self._geocode_list[self.geocoding_menu.get_history()] == 'GCP':
            vrt_opts.set_geopref('gcps')
        elif self._geocode_list[self.geocoding_menu.get_history()] == 'Geotransform':
            vrt_opts.set_geopref('geotransform')

        band_list = None
        
        # Scale the output file according to the current view's
        # min/max
        if self.button_dict['Scale'].get_active():
            try:
                clayer = self.app.sel_manager.get_active_layer()
                if clayer.get_parent().get_dataset().GetDescription() != ipfile:
                    wtxt = 'Input file and active layer file names do not match- may '
                    wtxt = wtxt + 'result in unexpected scaling!'
                    gvutils.warning(wtxt)
                if gvutils.is_of_class(clayer.__class__,'GvRasterLayer') == 0:
                    gvutils.warning('Active layer is not a raster- view scaling ignored!')
                else:
                    src_count=clayer.sources
                    band_list = []
                    RGBAlist=['Red','Green','Blue','Alpha']
                    for src in range(src_count):
                        # layer sources are numbered 0...3; band sources are numbered 1,2,...
                        src_bandnum=clayer.get_data(src).get_band_number()
                        band_list.append(src_bandnum)
                        vrt_opts.set_scaling((clayer.min_get(src),clayer.max_get(src),0,255),(src_bandnum,))
                        vrt_opts.set_datatype(gdal.GDT_Byte,(src_bandnum,))
                        if src_count == 3:
                            vrt_opts.set_color_interp(RGBAlist[src],
                                                      (src_bandnum,))

                    # src_count is three even when there is an alpha channel
                    # for rgb/rgba case
                    if src_count == 3:
                        try:
                            src=3
                            src_bandnum=clayer.get_data(src).get_band_number()
                            band_list.append(src_bandnum)
                            vrt_opts.set_scaling((clayer.min_get(src),
                                                  clayer.max_get(src),0,255),
                                                 (src_bandnum,))
                            vrt_opts.set_datatype(gdal.GDT_Byte,(src_bandnum,))
                            vrt_opts.set_color_interp(RGBAlist[src],
                                                      (src_bandnum,))
                        except:
                            pass

                    use_viewscale=1
                    if clayer.get_mode()==gview.RLM_COMPLEX:
                        # This doesn't deal with complex yet...                        
                        gvutils.error('View scaling option is not yet supported for complex data!')
                        return
                    elif rast._band[0].DataType == gdal.GDT_CInt16:
                        # This doesn't deal with complex yet...                        
                        gvutils.error('View scaling option is not yet supported for complex data!')
                        return
                    elif rast._band[0].DataType == gdal.GDT_CInt32:
                        # This doesn't deal with complex yet...                        
                        gvutils.error('View scaling option is not yet supported for complex data!')
                        return
                    elif rast._band[0].DataType == gdal.GDT_CFloat32:
                        # This doesn't deal with complex yet...                        
                        gvutils.error('View scaling option is not yet supported for complex data!')
                        return
                    elif rast._band[0].DataType == gdal.GDT_CFloat64:
                        # This doesn't deal with complex yet...                        
                        gvutils.error('View scaling option is not yet supported for complex data!')
                        return                    
            except:
                gvutils.error('Unable to find active raster layer for scaling!')
                return

        # Get windowing options
        if self.button_dict['IP_window'].get_active():
            try:
                spix=int(self.frame_dict['IP_window'].entry_dict['start_pix'].get_text())
                sline=int(self.frame_dict['IP_window'].entry_dict['start_line'].get_text())
                npix=int(self.frame_dict['IP_window'].entry_dict['num_pix'].get_text())
                nlines=int(self.frame_dict['IP_window'].entry_dict['num_lines'].get_text())
                if (spix < 0) or (sline < 0):
                    gvutils.error('Negative start pixel and/or line!  Aborting...')
                    return
                if (npix+spix > rast.RasterXSize):
                    gvutils.error('Window is too large (last column in input: '+str(rast.RasterXSize)+')! Aborting...')
                    return
                if (nlines+sline > rast.RasterYSize):
                    gvutils.error('Window is too large (last row in input: '+str(rast.RasterYSize)+')! Aborting...')
                    return
            except:
                gvutils.error('Error retrieving window options!  Aborting...')
                return
        else:
            spix=0
            sline=0
            npix=rast.RasterXSize
            nlines=rast.RasterYSize

        vrt_opts.set_src_window((spix,sline,npix,nlines))

        if self.res_list[self.res_menu.get_history()] != 'Full':
            ovrlevel=int(self.res_list[self.res_menu.get_history()][2])
        else:
            ovrlevel=1

        vrt_opts.set_dst_window((0,0,npix/ovrlevel,nlines/ovrlevel))

        vrt_tree=vrtutils.serializeDataset(rast,vrt_opts,band_list)
        vrt_lines=gdal.SerializeXMLTree(vrt_tree)
        vrtdataset=gdal.Open(vrt_lines)
        
        driver=gdal.GetDriverByName(opformat)

        # Parse creation options:
        optstr=string.strip(self.optentry.get_text())
        if len(optstr) > 0:
            # should be able to deal with several
            # types of entries, eg.
            # 'TILED=YES','TFW=YES'
            # and
            # TILED=YES,TFW=YES

            if optstr[0] in ["'",'"']:
                split1=string.split(optstr,",")
                copts=[]
                for item in split1:
                    if len(item) > 2:
                        copts.append(item[1:len(item)-1])
            else:    
                copts=string.split(optstr,',')
        else:
            copts=[]
    
        progress = pguprogress.PGUProgressDialog( 'Export to '+opfile,
                                                  cancel = gtk.TRUE )
        progress.SetDefaultMessage("translated")

        outdataset=driver.CreateCopy(opfile,vrtdataset,
                                     options=copts,
                                     callback=progress.ProgressCB)
        if outdataset is None:
            progress.destroy()
            gvutils.error('Unable to create output file '+opfile)
            return
        
        ovrs=self._overview_list[self.overview_menu.get_history()]
        if ovrs is 'Nearest':
            progress.SetDefaultMessage("overviews built")
            outdataset.BuildOverviews( "nearest",
                                       callback = progress.ProgressCB )
   
        elif ovrs is 'Average':
            progress.SetDefaultMessage("overviews built")
            outdataset.BuildOverviews( "average_magphase",
                                       callback = progress.ProgressCB )
            
        progress.destroy()
Example #58
0
	def python_debug(self, mi=None):
		fname = GtkExtra.file_sel_box("Debug")
		if fname:
			self.debug_script(fname)