def startODBCAdmin(): path = get_exe_path('iodbcadm-gtk') if not path: path = get_exe_path('ODBCManageDataSourcesQ4') if path: subprocess.Popen(path, shell=True, close_fds=True) return 1 else: return 0
def check_ogr_executables(self): if get_exe_path("ogrinfo.exe" if sys.platform.lower() == "win32" else "ogrinfo"): self.ogrinfo_missing = False self.ogrinfo_icon.set_image("task_checked%s.png" % os_icon_suffix) else: self.ogrinfo_icon.set_image("task_warning%s.png" % os_icon_suffix) self.ogrinfo_missing_lbl.show(True) if get_exe_path("ogr2ogr.exe" if sys.platform.lower() == "win32" else "ogr2ogr"): self.ogr2ogr_missing = False self.ogr2ogr_icon.set_image("task_checked%s.png" % os_icon_suffix) else: self.ogr2ogr_icon.set_image("task_warning%s.png" % os_icon_suffix) self.ogr2ogr_missing_lbl.show(True)
def check_ogr_executables(self): if get_exe_path("ogrinfo"): self.ogrinfo_missing = False self.ogrinfo_icon.set_image("task_checked%s.png" % os_icon_suffix) else: self.ogrinfo_icon.set_image("task_warning%s.png" % os_icon_suffix) self.ogrinfo_missing_lbl.show(True) if get_exe_path("ogr2ogr"): self.ogr2ogr_missing = False self.ogr2ogr_icon.set_image("task_checked%s.png" % os_icon_suffix) else: self.ogr2ogr_icon.set_image("task_warning%s.png" % os_icon_suffix) self.ogr2ogr_missing_lbl.show(True)
def get_info(self): cmd = "%s -al -so %s" % (get_exe_path("ogrinfo"), self.get_path()) p1 = cmd_executor(cmd) sout, serr = p1.communicate(input) if serr: log_error("There was an error getting file information: %s" % serr) import re p = re.compile("^(\w+):\s(\w+)\s\(([0-9\.]+)\)", re.IGNORECASE) for line in sout.splitlines(): if line.startswith("Layer name: "): self.layer_name_lbl.set_text(line.split(':')[1].strip()) self.layer_name = line.split(':')[1].strip() self.table_name.set_value(line.split(':')[1].strip()) else: m = p.match(line) if m is not None: row = self.column_list.add_node() row.set_bool(0, True) row.set_string(1, m.group(1)) from grt.modules import Utilities res = Utilities.fetchAuthorityCodeFromFile( "%s.prj" % os.path.splitext(self.get_path())[0]) if res: self.epsg_lbl.set_text(res) else: self.epsg_lbl.set_text(0) log_info("Can't find EPSG fallback to 0")
def get_info(self): cmd = "%s -al -so %s" % (get_exe_path("ogrinfo"), self.get_path()) p1 = cmd_executor(cmd) sout, serr = p1.communicate(input) if serr: log_error("There was an error getting file information: %s" % serr) import re p = re.compile("^(\w+):\s(\w+)\s\(([0-9\.]+)\)", re.IGNORECASE) for line in sout.splitlines(): if line.startswith("Layer name: "): self.layer_name_lbl.set_text(line.split(':')[1].strip()) self.layer_name = line.split(':')[1].strip() self.table_name.set_value(line.split(':')[1].strip()) else: m = p.match(line) if m is not None: row = self.column_list.add_node() row.set_bool(0, True) row.set_string(1, m.group(1)) from grt.modules import Utilities res = Utilities.fetchAuthorityCodeFromFile("%s.prj" % os.path.splitext(self.get_path())[0]) if res: self.epsg_lbl.set_text(res) else: self.epsg_lbl.set_text(0) log_info("Can't find EPSG fallback to 0")
def run(self, progress_notify): cmd_args = {} cmd_args['ogr2ogr'] = get_exe_path("ogr2ogr") cmd_args['host'] = self.my_host cmd_args['schema'] = self.my_schema cmd_args['user'] = self.my_user cmd_args['pwd'] = self.my_pwd cmd_args['port'] = self.my_port cmd = [] cmd.append("exec") cmd.append(get_exe_path("ogr2ogr")) cmd.append("-f") cmd.append('"MySQL"') cmd.append( 'MySQL:"%(schema)s,host=%(host)s,user=%(user)s,password=%(pwd)s,port=%(port)d"' % cmd_args) cmd.append(self.filepath) if self.import_table: cmd.append('-nln') cmd.append('"%s"' % self.import_table) if self.destination_EPSG: cmd.append('-t_srs') cmd.append('EPSG:' % self.destination_EPSG) if self.skipfailures: cmd.append('-skipfailures') if self.import_append: cmd.append('-append') if self.import_overwrite: cmd.append('-overwrite') if self.selected_fields: cmd.append('-select') cmd.append(self.selected_fields) cmd.append('-progress') cmd.append('-gt') cmd.append(str(self.features_per_transcation)) cmd.append('-lco') cmd.append('GEOMETRY_NAME="%s"' % self.my_geo_column) cmd.append('-lco') cmd.append('ENGINE=InnoDb') cmd.append('-lco') if self.spatial_index: cmd.append('SPATIAL_INDEX=YES') else: cmd.append('SPATIAL_INDEX=NO') self.is_running = True try: self.execute_cmd(" ".join(cmd), progress_notify) except grt.UserInterrupt: log_info("User cancelled") raise except Exception, exc: import traceback log_error( "An error occured during execution of ogr2ogr file import: %s, stack: %s\n The command was: %s\n" % (exc, traceback.format_exc(), cmd)) raise
def run(self, progress_notify): cmd_args = {} cmd_args['ogr2ogr'] = get_exe_path("ogr2ogr") cmd_args['host'] = self.my_host cmd_args['schema'] = self.my_schema cmd_args['user'] = self.my_user cmd_args['pwd'] = self.my_pwd cmd_args['port'] = self.my_port cmd = [] cmd.append("exec") cmd.append(get_exe_path("ogr2ogr")) cmd.append("-f") cmd.append('"MySQL"') cmd.append('MySQL:"%(schema)s,host=%(host)s,user=%(user)s,password=%(pwd)s,port=%(port)d"' % cmd_args) cmd.append(self.filepath) if self.import_table: cmd.append('-nln') cmd.append('"%s"' % self.import_table) if self.destination_EPSG: cmd.append('-t_srs') cmd.append('EPSG:' % self.destination_EPSG) if self.skipfailures: cmd.append('-skipfailures') if self.import_append: cmd.append('-append') if self.import_overwrite: cmd.append('-overwrite') if self.selected_fields: cmd.append('-select') cmd.append(self.selected_fields) cmd.append('-progress') cmd.append('-gt') cmd.append(str(self.features_per_transcation)) cmd.append('-lco') cmd.append('GEOMETRY_NAME="%s"' % self.my_geo_column) cmd.append('-lco') cmd.append('ENGINE=InnoDb') cmd.append('-lco') if self.spatial_index: cmd.append('SPATIAL_INDEX=YES') else: cmd.append('SPATIAL_INDEX=NO') self.is_running = True try: self.execute_cmd(" ".join(cmd), progress_notify) except grt.UserInterrupt: log_info("User cancelled") raise except Exception, exc: import traceback log_error("An error occured during execution of ogr2ogr file import: %s, stack: %s\n The command was: %s\n" % (exc, traceback.format_exc(), cmd)) raise