Пример #1
0
    def run(self):
        # prevent eventual locks
        gc.collect()
        self.fragments_left = []
        arcpy.AddMessage(encode('Lösche Projekte'))

        projects_to_delete = self.par.projekte.values
        step = 100 / len(projects_to_delete)
        pos = 0
        for project in projects_to_delete:
            pos += step
            arcpy.SetProgressorPosition(pos)
            arcpy.SetProgressorLabel(
                encode(u'Lösche Projekt {}'.format(project)))
            self.compact_gdbs(project)
            self.remove_project_from_output(project)
            self.projekt_loeschen(project)
        config = self.parent_tbx.config
        if len(self.fragments_left) > 0:
            arcpy.AddError(u'Folgende Projekte konnten aufgrund von '
                           u'Schemasperren nicht restlos entfernt werden:')
            arcpy.AddError(', '.join(self.fragments_left))
            arcpy.AddError('Bitte starten Sie ArcMap neu und '
                           'versuchen Sie es erneut!')

        # change active project, if it was deleted
        if config.active_project in projects_to_delete:
            projects = self.folders.get_projects()
            config.active_project = projects[0] if len(projects) > 0 else ''
    def _getParameterInfo(self):
        # Projekt
        params = self.par
        p = self.add_parameter('projectname')
        p.name = u'Projekt'
        p.displayName = u'Projekt'
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        projects = self.folders.get_projects()
        p.filter.list = projects
        p.value = '' if len(projects) == 0 else p.filter.list[0]

        # Teilfläche
        p = self.add_parameter('area')
        p.name = encode(u'Teilfläche')
        p.displayName = encode(u'Teilfläche')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        p.filter.list = []

        self.df_types_of_use = self.table_to_dataframe(
            'Nutzungsarten', workspace='FGDB_Definition_Projekt_Tool.gdb',
            is_base_table=True
        )

        return params
Пример #3
0
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        # markets radius
        p = self.add_parameter('radius_markets')
        p.name = u'radius_markets'
        p.displayName = encode(u'Pufferzone für Märkte um gewählte '
                               u'Gemeinden festlegen (in m)')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPLong'
        p.filter.type = 'Range'
        p.filter.list = [3000, 10000]
        p.value = 6000
        p.enabled = True

        return params
Пример #4
0
    def _getParameterInfo(self):

        params = self.par
        projekte = self.folders.get_projects()

        # Projekt_auswählen
        p = self.add_parameter('projectname')
        p.name = u'Projekt_auswählen'.encode('cp1252')
        p.displayName = u'Projekt'.encode('cp1252')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        p.value = self.config.active_project

        param = self.add_parameter('stops')
        param.name = encode(u'stops')
        param.displayName = encode(u'Name der Haltestelle')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        self.df_stops = []

        return params
Пример #5
0
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        # markets radius
        p = self.add_parameter('radius_markets')
        p.name = u'radius_markets'
        p.displayName = encode(u'Pufferzone für Märkte um gewählte '
                               u'Gemeinden festlegen (in m)')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPLong'
        p.filter.type = 'Range'
        p.filter.list = [3000, 10000]
        p.value = 6000
        p.enabled = True

        return params
Пример #6
0
    def _getParameterInfo(self):

        params = self.par
        projekte = self.folders.get_projects()

        # Projekt_auswählen
        p = self.add_parameter('projectname')
        p.name = u'Projekt_auswählen'.encode('cp1252')
        p.displayName = u'Projekt'.encode('cp1252')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        p.value = self.config.active_project

        param = self.add_parameter('stops')
        param.name = encode(u'stops')
        param.displayName = encode(u'Name der Haltestelle')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        self.df_stops = []

        return params
    def _getParameterInfo(self):

        # Bestehendes_Projekt_auswählen
        p = self.add_parameter('projectname')
        p.name = encode('Projekt')
        p.displayName = encode('Projekt')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'
        p.filter.list = []

        return self.par
    def _getParameterInfo(self):

        # Bestehendes_Projekt_auswählen
        p = self.add_parameter('projectname')
        p.name = encode('Projekt')
        p.displayName = encode('Projekt')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'
        p.filter.list = []

        return self.par
Пример #9
0
    def _getParameterInfo(self):
        super(TbxErreichbarkeitOEPNV, self)._getParameterInfo()
        params = self.par
        params.stops.displayName = encode(u'Abfahrt von Haltestelle:')

        param = self.add_parameter('recalculate')
        param.name = encode(u'Neuberechnung')
        param.displayName = encode(u'Neuberechnung erzwingen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return params
    def _getParameterInfo(self):
        super(TbxErreichbarkeitOEPNV, self)._getParameterInfo()
        params = self.par
        params.stops.displayName = encode(u'Abfahrt von Haltestelle:')

        param = self.add_parameter('recalculate')
        param.name = encode(u'Neuberechnung')
        param.displayName = encode(u'Neuberechnung erzwingen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return params
Пример #11
0
    def _getParameterInfo(self):
        projects = self.folders.get_projects()

        # Bestehendes_Projekt_auswählen
        p = self.add_parameter('projekte')
        p.name = encode('1-Projekt_auswählen')
        p.displayName = encode('Zu löschende Projekte auswählen')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'
        p.multiValue = True
        p.filter.list = projects

        return self.par
    def _getParameterInfo(self):

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('centers')
        param.name = encode(u'Zentren')
        param.displayName = encode(u'Zentrum auswählen')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('name')
        param.name = encode(u'Name')
        param.displayName = encode(u'Name des Zentrums')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'

        param = self.add_parameter('do_delete')
        param.name = encode(u'Löschen')
        param.displayName = encode(u'Zentrum entfernen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        self.centers_df = []
        return self.par
Пример #13
0
    def _getParameterInfo(self):

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('template_type')
        param.name = encode(u'type')
        param.displayName = encode(u'Dateiformat des zu erzeugenden Templates')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = MarketTemplate.template_types.keys()
        param.value = param.filter.list[1]

        param = self.add_parameter('folder')
        param.name = encode(u'folder')
        param.displayName = encode(u'Zielordner')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'DEFolder'

        param = self.add_parameter('show_help')
        param.name = encode(u'Hilfe')
        param.displayName = encode(u'Kurzanleitung zum Ausfüllen anzeigen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return self.par
    def _getParameterInfo(self):
        projects = self.folders.get_projects()

        # Bestehendes_Projekt_auswählen
        p = self.add_parameter('projekte')
        p.name = encode('1-Projekt_auswählen')
        p.displayName = encode('Zu löschende Projekte auswählen')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'
        p.multiValue = True
        p.filter.list = projects

        return self.par
    def _getParameterInfo(self):

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('centers')
        param.name = encode(u'Zentren')
        param.displayName = encode(u'Zentrum auswählen')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('name')
        param.name = encode(u'Name')
        param.displayName = encode(u'Name des Zentrums')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'

        param = self.add_parameter('do_delete')
        param.name = encode(u'Löschen')
        param.displayName = encode(u'Zentrum entfernen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        self.centers_df = []
        return self.par
Пример #16
0
 def _getParameterInfo(self):
     params = self.par
     # Bestehendes_Projekt_auswählen
     p = self.add_parameter('name')
     p.name = encode('Projekt')
     p.displayName = encode('Projekt')
     p.parameterType = 'Required'
     p.direction = 'Input'
     p.datatype = 'GPString'
     active = self.config.active_project
     projects = self.folders.get_projects()
     p.filter.list = projects
     if active and active in projects:
         p.value = active
     return params
    def _create(self, **kwargs):
        """
        Diagramm für Teilflächen
        """
        # Erstelle Diagramm Teilflaechen nach Hektar
        project_name = kwargs['project_name'] if 'project_name' in kwargs \
            else self.tbx.par.get_projectname()
        input_template = self.tbx.folders.get_diagram_template(
            'Teilflaechen_Hektar')

        # Create the graph
        graph = arcpy.Graph()
        mxd = arcpy.mapping.MapDocument("CURRENT")
        project_layer = self.tbx.output.get_projectlayer(project_name)
        input_data = arcpy.mapping.ListLayers(project_layer,
                                              "Nutzungen des Plangebiets",
                                              mxd.activeDataFrame)[0]
        del (mxd)
        # Add a vertical bar series to the graph
        graph.addSeriesBarVertical(dataSrc=input_data,
                                   fieldY="Flaeche_ha",
                                   fieldLabel="Name")

        title = encode("{}: Teilflächen des Plangebiets (Bruttofläche)".format(
            project_name.encode("utf-8")))
        graph.graphPropsGeneral.title = title
        return graph, input_template
Пример #18
0
 def _getParameterInfo(self):
     params = super(TbxSetSource, self)._getParameterInfo()
     params.area.displayName = encode(u'Teilfläche, die über den eben in '
                                      u'der Karte gesetzten Anbindungspunkt'
                                      u' an das Straßennetz angeschlossen'
                                      u'werden soll')
     return self.par
Пример #19
0
    def projekt_loeschen(self, project_name):
        arcpy.AddMessage(u"Projektname: " + project_name)
        # Mit dem Projektnamen zum neuen Projektpfad zusammenführen"
        projektPfad = self.folders.get_projectpath(project_name)
        arcpy.AddMessage(u"Suche Ordner: " + projektPfad)

        # Überprüfen, ob der Projektordner existiert
        if isdir(projektPfad):
            arcpy.AddMessage("Projektordner gefunden \n")
            shutil.rmtree(projektPfad, ignore_errors=True)
            try:
                arcpy.Delete_management(projektPfad)
            except:
                pass
            arcpy.AddMessage(u"Projektordner gelöscht \n")
        else:
            arcpy.AddMessage(u"Projektordner " + project_name + u" nicht gefunden \n")

        arcpy.AddMessage("*" * 45)
        if arcpy.Exists(projektPfad):
            self.fragments_left.append(project_name)
            arcpy.AddError(encode('Projekt {p} konnte nicht vollständig gelöscht '
                           'werden.'.format(p=project_name)))
        else:
            arcpy.AddMessage("Das Projekt " + project_name + " wurde erfolgreich entfernt \n")
Пример #20
0
    def get_layer(self, layername, folder='', enhance = True):
        """
        A lyr-file

        Parameters
        ----------
        layername : str
            the name of the lyr-file

        folder : str, optional
            a subfolder

        enhance = boolean, optional
            True -> ".lyr" will be added to layername

        Returns
        -------
        layer : str
            the full path to the lyr-file
        """
        layername = encode(layername)
        if (enhance == True):
            layerfile = '{}.lyr'.format(layername)
        else:
            layerfile = layername

        layer = self.join_and_check(self.TEMPLATE_LAYERFOLDER, folder, layerfile)
        return layer
Пример #21
0
    def get_diagram_template(self, name, subfolder='', enhance=True):
        """
        Return a diagram from the templates

        Parameters
        ----------
        name : str
            the name of the diagram
        subfolder : str, optional
            a subfolder for a specific diagram
        enhance : bool, optional (Default=True)
            if true, add .grf as extension to the diagram name

        Returns
        -------
        path : str
            the full path to the diagram
        """
        filename = encode(name)
        if enhance:
            filename = '{}.grf'.format(filename)
        diagram_path = self.join_and_check(self.TEMPLATE_DIAGRAMFOLDER,
                                           subfolder,
                                           filename)
        return diagram_path
Пример #22
0
    def get_layer(self, layername, folder='', enhance=True):
        """
        A lyr-file

        Parameters
        ----------
        layername : str
            the name of the lyr-file

        folder : str, optional
            a subfolder

        enhance = boolean, optional
            True -> ".lyr" will be added to layername

        Returns
        -------
        layer : str
            the full path to the lyr-file
        """
        layername = encode(layername)
        if (enhance == True):
            layerfile = '{}.lyr'.format(layername)
        else:
            layerfile = layername

        layer = self.join_and_check(self.TEMPLATE_LAYERFOLDER, folder,
                                    layerfile)
        return layer
Пример #23
0
 def _getParameterInfo(self):
     params = super(TbxSetSource, self)._getParameterInfo()
     params.area.displayName = encode(u'Teilfläche, die über den eben in '
                                      u'der Karte gesetzten Anbindungspunkt'
                                      u' an das Straßennetz angeschlossen'
                                      u'werden soll')
     return self.par
    def _getParameterInfo(self):
        params = super(TbxMaerkteImportierenFeatureClass, self)._getParameterInfo()

        param = self.par.template
        param.displayName = encode(u'Befüllte Erfassungsvorlage (Shape-Datei)')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPFeatureLayer'

        return params
Пример #25
0
    def show_external(self, plot, filename):
        filename = str(filename)

        if plot is None:
            return
        with open(filename,'wb') as f:
            pickle.dump(plot, f)
        subprocess.Popen(
            [os.path.join(sys.exec_prefix, 'python.exe'),
             '-m' , diagram_exec.__name__, '-f', filename,
             '-t', encode(self.title)], shell=True)
    def _getParameterInfo(self):
        params = super(TbxMaerkteImportierenFeatureClass,
                       self)._getParameterInfo()

        param = self.par.template
        param.displayName = encode(u'Befüllte Erfassungsvorlage (Shape-Datei)')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPFeatureLayer'

        return params
    def _getParameterInfo(self):
        params = super(TbxTeilflaecheVerwalten, self)._getParameterInfo()
        # Name
        p = self.add_parameter('name')
        p.name = u'Name'
        p.displayName = u'Name'
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'

        # Nutzungsart
        p = self.add_parameter('type_of_use')
        p.name = encode(u'Nutzungsart')
        p.displayName = encode(u'Nutzungsart')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        p.filter.list = self.df_types_of_use['nutzungsart'].values.tolist()

        return params
Пример #28
0
    def _getParameterInfo(self):
        params = super(TbxNutzungenEinzelhandel, self)._getParameterInfo()
        # no duration needed as the shops are assumed to be finished instantly
        self.remove_parameter('dauer_aufsiedlung')
        self.remove_parameter('bezugsbeginn')

        for srt in self.sortimente.itervalues():
            assert isinstance(srt, Sortiment)
            # Verkaufsfläche nach Sortiment
            param = self.add_parameter(srt.param_vfl)
            param.name = encode(srt.kurzname)
            param.displayName = encode(u'{} (Verkaufsfläche in qm)'.format(srt.name))
            param.parameterType = 'Required'
            param.direction = 'Input'
            param.datatype = u'Long'
            param.value = u'0'
            param.filter.type = 'Range'
            param.filter.list = [0, 20000]

        return params
Пример #29
0
    def _getParameterInfo(self):
        params = self.par

        # Bestehendes_Projekt_auswählen
        p = self.add_parameter('existing_project')
        p.name = encode('Bestehendes_Projekt_auswählen')
        p.displayName = encode('Bestehendes Projekt auswählen')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'

        # Name_des_neuen_Projektes
        p = self.add_parameter('name')
        p.name = u'Name_des_neuen_Projektes'
        p.displayName = u'Name des neuen Projekts'
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'
        p.value = u''

        return params
Пример #30
0
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        #param = self.add_parameter('count')
        #param.name = encode(u'Anzahl')
        #param.displayName = encode(u'Maximale Anzahl an '
                                   #u'hinzuzufügenden Märkten')
        #param.parameterType = 'Required'
        #param.direction = 'Input'
        #param.datatype = u'GPLong'
        #param.filter.type = 'Range'
        #param.filter.list = [0, 5000]
        #param.value = 1000

        param = self.add_parameter('truncate')
        param.name = encode(u'truncate')
        param.displayName = encode(u'Vorhandene OSM-Märkte entfernen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        #param = self.add_parameter('known_only')
        #param.name = encode(u'known_only')
        #param.displayName = encode(u'Nur Märkte großer Ketten hinzufügen')
        #param.parameterType = 'Optional'
        #param.direction = 'Input'
        #param.datatype = u'GPBoolean'
        #param.value = True

        return params
    def _getParameterInfo(self):
        params = self.par


        # Bestehendes_Projekt_auswählen
        p = self.add_parameter('existing_project')
        p.name = encode('Bestehendes_Projekt_auswählen')
        p.displayName = encode('Bestehendes Projekt auswählen')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'

        # Name_des_neuen_Projektes
        p = self.add_parameter('name')
        p.name = u'Name_des_neuen_Projektes'
        p.displayName = u'Name des neuen Projekts'
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = 'GPString'
        p.value = u''

        return params
Пример #32
0
    def _getParameterInfo(self):
        params = super(TbxNutzungenWohnen, self)._getParameterInfo()

        # specific parameters for "Wohnen"

        heading = encode(u"2) Anzahl Wohneinheiten nach Gebäudetypen")

        for gt in self.gebaeudetypen.itervalues():
            assert isinstance(gt, Gebaeudetyp)
            # Anzahl WE in Gebäudetypen
            param = self.add_parameter(gt.param_we)
            param.name = encode(u'Bewohner {}'.format(gt.display_name))
            param.displayName = encode(u'Anzahl WE in {}'.format(gt.display_name))
            param.parameterType = 'Required'
            param.direction = 'Input'
            param.datatype = u'Long'
            param.value = u'0'
            param.filter.type = 'Range'
            param.filter.list = [0, 500]
            param.category = heading

        heading = ("3) Mittlere Anzahl Einwohner pro Wohneinheit " +
                   "(3 Jahre nach Bezug)")

        for gt in self.gebaeudetypen.itervalues():
            assert isinstance(gt, Gebaeudetyp)
            # Mittlere Anzahl Einwohner pro WE in Einfamilienhäusern
            # (kurz nach dem Bezug)
            param = self.add_parameter(gt.param_ew_je_we)
            param.name = encode(u'EW_JE_WE {}'.format(gt.display_name))
            param.displayName = encode(u'... in {}'.format(gt.display_name))
            param.parameterType = 'Required'
            param.direction = 'Input'
            param.datatype = u'GPDouble'
            param.value = gt.default_ew_je_we
            param.filter.list = self.ew_je_we_range
            param.category = heading

        return params
Пример #33
0
    def show_external(self, plot, filename):
        filename = str(filename)

        if plot is None:
            return
        with open(filename, 'wb') as f:
            pickle.dump(plot, f)
        subprocess.Popen([
            os.path.join(sys.exec_prefix, 'python.exe'), '-m',
            diagram_exec.__name__, '-f', filename, '-t',
            encode(self.title)
        ],
                         shell=True)
Пример #34
0
    def _create(self, **kwargs):
        project_name = self.tbx.par.get_projectname()
        title = encode(
            u"{}: qm Wohnfläche pro Hektar Nettowohnbauland"
            .format(project_name))
        input_template = self.tbx.folders.get_diagram_template(
            'Wohnflaechendichte')

        graph = arcpy.Graph()
        input_data = self.tbx.folders.get_table("Wohnflaechendichte", "FGDB_Flaeche_und_Oekologie.gdb")
        graph.addSeriesBarVertical(dataSrc=input_data,
                                   fieldY= "Wohnflaechendichte",
                                   fieldLabel="Typ")
        graph.graphPropsGeneral.title = title
        return graph, input_template
Пример #35
0
    def _create(self, **kwargs):
        project_name = self.tbx.par.get_projectname()
        title = encode(
            u"{}: Bodenbedeckung im Planfall"
            .format(project_name))
        input_template = self.tbx.folders.get_diagram_template(
            'Bodenbedeckung')

        graph = arcpy.Graph()
        input_data = self.tbx.folders.get_table("Bodenbedeckung_Zeichnung", "FGDB_Flaeche_und_Oekologie.gdb")
        graph.addSeriesBarVertical(dataSrc=input_data,
                                   fieldY= "Planfall",
                                   fieldLabel="Bodenbedeckung")
        graph.graphPropsGeneral.title = title
        return graph, input_template
Пример #36
0
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('radius')
        param.name = encode(u'radius')
        param.displayName = encode(u'Radius in Kilometern')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPLong'
        param.filter.type = 'Range'
        param.filter.list = [1, 20]
        param.value = 10

        return params
Пример #37
0
    def _getParameterInfo(self):

        params = self.par
        projekte = self.folders.get_projects()

        # Projekt_auswählen
        p = self.add_parameter('projectname')
        p.name = u'Projekt_auswählen'.encode('cp1252')
        p.displayName = u'Projekt'.encode('cp1252')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        p.value = self.config.active_project
        p.enabled = False

        # markets radius
        p = self.add_parameter('radius_sz')
        p.name = u'radius_sz'
        p.displayName = encode(u'Pufferzone für Siedlungszellen um gewählte '
                               u'Gemeinden festlegen (in m)')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPLong'
        p.filter.type = 'Range'
        p.filter.list = [0, 5000]
        p.value = 2000

        param = self.add_parameter('recalculate')
        param.name = encode(u'Neuberechnung')
        param.displayName = encode(u'Neuberechnung der Distanzen und '
                                   u'Siedlungszellen erzwingen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return params
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('template')
        param.name = encode(u'template')

        param = self.add_parameter('truncate')
        param.name = encode(u'truncate')
        param.displayName = encode(u'Vorhandene Märkte entfernen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return params
Пример #39
0
    def _create(self, **kwargs):
        project_name = self.tbx.par.get_projectname()
        title = encode(
            u"{}: Bodenkennwert Biotopausbildungsvermögen"
            .format(project_name))
        input_template = self.tbx.folders.get_diagram_template(
            'Bodenkennwerte')

        graph = arcpy.Graph()
        input_data = self.tbx.folders.get_table("Leistungskennwerte", "FGDB_Flaeche_und_Oekologie.gdb")
        graph.addSeriesBarVertical(dataSrc=input_data,
                                   fieldY= "Biotopausbildungsvermoegen",
                                   fieldLabel="Kategorie")
        graph.graphPropsGeneral.title = title
        return graph, input_template
Пример #40
0
    def _create(self, **kwargs):
        project_name = self.tbx.par.get_projectname()
        title = encode(
            "{}: Anteil der Plangebietsgrenze (in Prozent), der ..."
            .format(project_name))
        input_template = self.tbx.folders.get_diagram_template(
            'Integrationsgrad')

        graph = arcpy.Graph()
        input_data = self.tbx.folders.get_table("Integrationsgrad", "FGDB_Flaeche_und_Oekologie.gdb")
        graph.addSeriesPie(dataSrc=input_data,
                                   fieldValue = "Umfang",
                                   fieldLabel="Grenze")
        graph.graphPropsGeneral.title = title
        return graph, input_template
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('template')
        param.name = encode(u'template')

        param = self.add_parameter('truncate')
        param.name = encode(u'truncate')
        param.displayName = encode(u'Vorhandene Märkte entfernen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return params
    def _getParameterInfo(self):

        params = self.par
        projekte = self.folders.get_projects()

        # Projekt_auswählen
        p = self.add_parameter('projectname')
        p.name = u'Projekt_auswählen'.encode('cp1252')
        p.displayName = u'Projekt'.encode('cp1252')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPString'
        p.value = self.config.active_project
        p.enabled = False

        # markets radius
        p = self.add_parameter('radius_sz')
        p.name = u'radius_sz'
        p.displayName = encode(u'Pufferzone für Siedlungszellen um gewählte '
                               u'Gemeinden festlegen (in m)')
        p.parameterType = 'Required'
        p.direction = 'Input'
        p.datatype = u'GPLong'
        p.filter.type = 'Range'
        p.filter.list = [0, 5000]
        p.value = 2000

        param = self.add_parameter('recalculate')
        param.name = encode(u'Neuberechnung')
        param.displayName = encode(u'Neuberechnung der Distanzen und '
                                   u'Siedlungszellen erzwingen')
        param.parameterType = 'Optional'
        param.direction = 'Input'
        param.datatype = u'GPBoolean'

        return params
Пример #43
0
    def _getParameterInfo(self):

        params = self.par

        # Projekt_auswählen
        param = self.add_parameter('projectname')
        param.name = encode(u'Projekt_auswählen')
        param.displayName = encode(u'Projekt')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = []

        param = self.add_parameter('cutoff')
        param.name = encode(u'Erreichbarkeit')
        param.displayName = encode(u'Erreichbarkeit in x Minuten')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPLong'
        param.filter.type = 'Range'
        param.filter.list = [5, 60]
        param.value = 10

        return params
    def _getParameterInfo(self):
        params = super(TbxMaerkteImportierenDatei, self)._getParameterInfo()

        param = self.par.template
        param.displayName = encode(u'Befüllte Erfassungsvorlage (csv- oder '
                                   u'Excel- Datei)')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'DEFile'
        #param.filter.type = 'File'

        #param.filter.list = [e.replace('.', '')
        #for e in MarketTemplate.template_types.values()]
        param.filter.list = ['csv', 'xlsx']

        return params
    def _getParameterInfo(self):
        params = super(TbxMaerkteImportierenDatei, self)._getParameterInfo()

        param = self.par.template
        param.displayName = encode(u'Befüllte Erfassungsvorlage (csv- oder '
                                   u'Excel- Datei)')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'DEFile'
        #param.filter.type = 'File'

        #param.filter.list = [e.replace('.', '')
                                 #for e in MarketTemplate.template_types.values()]
        param.filter.list = ['csv', 'xlsx']

        return params
    def _create(self, **kwargs):
        """
        Diagramm für die Zuzugsstatistik (SvB)
        """
        project_name = self.tbx.par.get_projectname()
        title = encode(
            "{}: Herkunftsorte der Arbeitsplätze im Plangebiet"
            .format(project_name))
        input_template = self.tbx.folders.get_diagram_template(
            'Zuzugsstatistik')

        graph = arcpy.Graph()
        input_data = self.tbx.folders.get_table("Zuzugsstatistik_SvB", "FGDB_Einnahmen.gdb")
        graph.addSeriesBarVertical(dataSrc=input_data,
                                   fieldY= "Anzahl",
                                   fieldLabel="Kategorie")
        graph.graphPropsGeneral.title = title
        return graph, input_template
Пример #47
0
class TbxExtendMarkets(TbxEditMarkets):
    setting = CHANGE
    _label = encode(u'Bestehende Märkte im Planfall verändern')

    def _updateParameters(self, params):
        if len(self.markets_df) == 0:
            return
        market_idx = self.markets_df['pretty'] == self.par.markets.value
        altered = False
        if self.par.changed('type_name'):
            id_typ = self.df_types['id_betriebstyp'][
                self.df_types['pretty'] == self.par.type_name.value].values[0]
            self.markets_df.loc[market_idx, 'id_betriebstyp_planfall'] = id_typ
            altered = True
        elif self.par.changed('do_close'):
            if self.par.do_close.value:
                self.markets_df.loc[market_idx, 'id_betriebstyp_planfall'] = 0
            else:
                self.markets_df.loc[market_idx, 'id_betriebstyp_planfall'] = \
                    self.markets_df.loc[market_idx, 'id_betriebstyp_nullfall']
            altered = True
        if altered:
            id_typ = self.markets_df.loc[market_idx,
                                         'id_betriebstyp_planfall'].values[0]
            id_kette = self.markets_df.loc[market_idx, 'id_kette'].values[0]
            if id_typ == 0:
                vkfl = 0
            else:
                vkfl = self.betriebstyp_to_vkfl(id_typ, id_kette)
            self.markets_df.loc[market_idx, 'vkfl_planfall'] = vkfl
            i = np.where(market_idx == True)[0][0]
            pretty = self.get_pretty_market_name(self.markets_df.iloc[i])
            self.markets_df.loc[market_idx, 'pretty'] = pretty
            self.update_market_list()

        # market changed -> change values of input fields
        if self.par.changed('markets') or altered:
            self.set_selected_market_inputs()
        return params
Пример #48
0
    def get_diagram_template(self, name, subfolder='', enhance=True):
        """
        Return a diagram from the templates

        Parameters
        ----------
        name : str
            the name of the diagram
        subfolder : str, optional
            a subfolder for a specific diagram
        enhance : bool, optional (Default=True)
            if true, add .grf as extension to the diagram name

        Returns
        -------
        path : str
            the full path to the diagram
        """
        filename = encode(name)
        if enhance:
            filename = '{}.grf'.format(filename)
        diagram_path = self.join_and_check(self.TEMPLATE_DIAGRAMFOLDER,
                                           subfolder, filename)
        return diagram_path
Пример #49
0
    def _getParameterInfo(self):
        params = super(TbxNutzungenGewerbe, self)._getParameterInfo()

        self.df_comm_types = self.table_to_dataframe(
            'Gewerbegebietstypen',
            workspace='FGDB_Definition_Projekt_Tool.gdb',
            is_base_table=True
        )

        # extend the commercial types
        default_idx = self.df_comm_types['IDGewerbegebietstyp'] == self._default_typ_id
        self.df_comm_types.loc[default_idx, 'Name_Gewerbegebietstyp'] += ' (default)'
        custom_row = pd.DataFrame(columns=self.df_comm_types.columns)
        custom_row['IDGewerbegebietstyp'] = [Gewerbegebietstyp.BENUTZERDEFINIERT]
        custom_row['Name_Gewerbegebietstyp'] = ['Benutzerdefiniert']
        self.df_comm_types = self.df_comm_types.append(
            custom_row, ignore_index=True).sort('IDGewerbegebietstyp')

        self.df_presets = self.table_to_dataframe(
            'Vorschlagswerte_Branchenstruktur',
            workspace='FGDB_Definition_Projekt_Tool.gdb',
            is_base_table=True
        )

        self.df_density = self.table_to_dataframe(
            'Dichtekennwerte_Gewerbe',
            workspace='FGDB_Definition_Projekt_Tool.gdb',
            is_base_table=True
        )

        heading = u"2) Voraussichtlicher Anteil der Branchen an der Nettofläche"

        # Gebietstyp auswählen
        param = self.add_parameter('gebietstyp')
        param.name = u'Gebietstyp'
        param.displayName = encode(u'Gebietstyp auswählen')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'

        param.filter.list = self.df_comm_types['Name_Gewerbegebietstyp'].values.tolist()
        param.value = param.filter.list[0]
        param.category = heading

        # remember params
        sum_params = []

        for branche in self.branchen.itervalues():
            assert isinstance(branche, Branche)
            param = self.add_parameter(branche.param_gewerbenutzung)
            param.name = encode(encode(branche.name))
            param.displayName = encode(
                u'{} (in % der Nettofläche)'.format(branche.name))
            param.parameterType = 'Required'
            param.direction = 'Input'
            param.datatype = u'Long'
            param.value = branche.default_gewerbenutzung
            param.filter.type = 'Range'
            param.filter.list = [0, 100]
            param.category = heading
            sum_params.append(branche.param_gewerbenutzung)

        self.add_dependency(sum_params, 100)

        heading = u'3) Voraussichtliche Anzahl an Arbeitsplätzen'

        # Arbeitsplatzzahl schätzen
        param = self.add_parameter('auto')
        param.name = u'Arbeitsplatzzahl schätzen'
        param.displayName = encode(u'Vorgehen zur Schätzung der Zahl der '
                                   u'Arbeitsplätze nach Vollbezug')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPString'
        param.filter.list = [u'Eigenen Wert eingeben',
                             u'Arbeitsplatzzahl automatisch schätzen']
        param.value = param.filter.list[0]
        param.category = heading

        # Arbeitsplätze insgesamt
        param = self.add_parameter('arbeitsplaetze_insgesamt')
        param.name = u'Arbeitsplätze insgesamt'
        param.displayName = encode(u'Schätzung der Zahl der Arbeitsplätze '
                                   u'nach Vollbezug (Summe über alle '
                                   u'Branchen)')
        param.parameterType = 'Required'
        param.direction = 'Input'
        param.datatype = u'GPLong'
        param.category = heading
        param.enabled = False
        param.filter.type = 'Range'
        param.filter.list = [0, 10000]

        return params