Beispiel #1
0
    def changeHeading(self, selected):
        if len(selected) > 0:
            ## Dialog 상자 띄워서 angle값 입력 받기
            # http://www.green-forums.info/greenlib/geolibrary/Lawhead%20J/QGIS%20Python%20Programming%20Cookbook.%2020%20%2852%29/QGIS%20Python%20Programming%20Cookboo%20-%20Lawhead%20J.pdf
            # initialize the dialog
            # qid = QInputDialog()
            # configure the dialog
            new_heading, ok = QInputDialog.getInt(self.iface.mainWindow(),
                                                  "Change heading",
                                                  "Enter heading value", 0, 0,
                                                  360, 1)
            # dialog 창 뜨면, text 입력하고, ok 버튼 누른다.
            # 입력 결과 출력
            print("입력된 heading 값: ", new_heading)

            ## heading 값 업데이트
            # update an attribute with given field index (int) to a given value
            fid = selected[0]
            fieldIndex = 2
            value = new_heading
            try:
                with edit(self.node_layer):
                    self.node_layer.changeAttributeValue(
                        fid, fieldIndex, value)
                    # 수정 결과 출력
                    print("heading 값이 수정됐습니다! fid: ", fid, "value: ", value)
            except Exception as err:
                print(repr(err))
 def ask_for_CRS(self, set_locale):
     # USER MUST SELECT CRS FIRST!!
     if set_locale == 'sv_SE':
         default_crs = 3006
     else:
         default_crs = 4326
     EPSGID = QInputDialog.getInt(None, "Select CRS", "Give EPSG-ID (integer) corresponding to\nthe CRS you want to use in the database:",default_crs)
     return EPSGID
 def get_eid(self, events_npz):
     self.events_npz = events_npz
     events = events_npz['array']
     self.eid = -1  # assuming events start from 0
     if 'GEM_QGIS_TEST' in os.environ:
         self.eid = self.get_closest_element(self.eid, events['id'])
         ok = True
     elif 'scenario' in self.calculation_mode:
         range_width = self.oqparam['number_of_ground_motion_fields']
         ranges = {}
         for gsim_idx, gsim in enumerate(self.gsims):
             ranges[gsim] = (gsim_idx * range_width,
                             gsim_idx * range_width + range_width - 1)
         ranges_str = ''
         for gsim in ranges:
             ranges_str += '\n%s: %s' % (gsim, ranges[gsim])
         input_msg = "Ranges:%s" % ranges_str
     else:
         input_msg = "Range (%s - %s)" % (events[0]['id'], events[-1]['id'])
     if 'GEM_QGIS_TEST' not in os.environ:
         while self.eid not in events['id']:
             if self.eid == -1:
                 is_first_iteration = True
             self.eid = self.get_closest_element(self.eid, events['id'])
             if is_first_iteration:
                 msg = 'The first relevant event id is %s' % self.eid
                 level = 'I'
             else:
                 msg = 'The closest relevant event id is %s' % self.eid
                 level = 'W'
             log_msg(msg, level=level, message_bar=self.iface.messageBar())
             self.eid, ok = QInputDialog.getInt(self.drive_engine_dlg,
                                                'Select an event ID',
                                                input_msg, self.eid,
                                                events[0]['id'],
                                                events[-1]['id'])
             if not ok:
                 self.reject()
                 return
     if not ok:
         self.reject()
         return
     log_msg(
         'Extracting ground motion fields.'
         ' Watch progress in QGIS task bar',
         level='I',
         message_bar=self.iface.messageBar())
     self.extract_npz_task = ExtractNpzTask('Extract ground motion fields',
                                            QgsTask.CanCancel,
                                            self.session,
                                            self.hostname,
                                            self.calc_id,
                                            self.output_type,
                                            self.finalize_init,
                                            self.on_extract_error,
                                            params={'event_id': self.eid})
     QgsApplication.taskManager().addTask(self.extract_npz_task)
Beispiel #4
0
 def ask_for_CRS(self, set_locale):
     # USER MUST SELECT CRS FIRST!!
     if set_locale == 'sv_SE':
         default_crs = 3006
     else:
         default_crs = 4326
     EPSGID = QInputDialog.getInt(
         None, "Select CRS",
         "Give EPSG-ID (integer) corresponding to\nthe CRS you want to use in the database:",
         default_crs)
     return EPSGID
Beispiel #5
0
def ras1dSAVolumeData(rgis):
    nr_slices, ok = QInputDialog.getInt(
        rgis, 'Number of slices', 'Number of slices for volume calculation:',
        10, 3, 30, 1)
    if not ok:
        rgis.addInfo('  Incorrect number of slices. Cancelling...')
        return

    rgis.addInfo(
        '<br><b>Calculating elevation-volume data for Storage Areas...</b>')
    rgis.rdb.process_hecobject(heco.SAVolume, 'pg_create_table')
    rgis.rdb.process_hecobject(heco.StorageAreas,
                               'pg_storage_calculator',
                               slices=nr_slices)
    rgis.rdb.add_to_view(heco.SAVolume())
    rgis.addInfo('Done')
Beispiel #6
0
    def edit_settings(self):
        """Open dialog with plugin settings."""
        s = QSettings()
        s.beginGroup("serval")
        k = "undo_steps"
        cur_val = self.settings[k]
        val_type = self.default_settings[k]["vtype"]
        cur_steps = s.value(k, cur_val, val_type)

        label = 'Nr of Undo/Redo steps:'
        steps, ok = QInputDialog.getInt(None, "Serval Settings", label, cur_steps)
        if not ok:
            return
        if steps >= 0:
            s.setValue("undo_steps", steps)
        self.load_settings()
        self.uc.show_info("Some new settings may require QGIS restart.")
Beispiel #7
0
    def drawRunwayExtensions(self):
        """Draw the extended runway centrelines"""

        length, okPress = QInputDialog.getInt(
            None,
            'Extended Runway Centrelines',
            'The total length in NM:',
            8,
            1,
            step=4
        )

        if not okPress:
            return

        try:
            drawing.drawRunwayExtension(length)
        except Exception as e:
            QMessageBox.warning(None, 'QgsOpenScope', str(e))