Created
November 16, 2023 15:15
-
-
Save jtornero/142fa1917eddf3476f9610e440685ee5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script para crear las capas del generalmillas | |
#ren=RenderNASC('#aabbcc',1101) | |
import math | |
#proy=QgsProject.instance() | |
#lay=proy.mapLayersByName('PR')[0] | |
#lay.setRenderer(ren) | |
# Diccionario de especies y color base para generar estilos | |
# Es preciso que todas las especies de las que se vaya a generar capa/ayout estén presentes | |
#especies={'ANE':'#00ff00', | |
#'PIL':'#0000ff', | |
#'MAS':'#00ffff', | |
#'MAC':'#ff0000', | |
#'HOM':'#ffff00', | |
#'HMM':'#ffffc0', | |
#'JAA':'#ff7f00', | |
#'BOG':'#c000c0', | |
#'MAV':'#b5fe5f', | |
#'SNS':'#c8c8c8', | |
#'POA':'#c8c8c8', | |
#'BOC':'#c8c8c8'} | |
#especies={ | |
#'ANE':'#00ff00', | |
#'PIL':'#0000ff', | |
#'MAS':'#00ffff', | |
#'MAC':'#ff0000', | |
#'HOM':'#ffff00', | |
#'HMM':'#ffffc0', | |
#'JAA':'#ff7f00', | |
#'BOG':'#c000c0', | |
#'MAV':'#b5fe5f', | |
#'SNS':'#c8c8c8', | |
#'BOC':'#c8c8c8', | |
#'SAA':'#c8c8c8', | |
#'POA':'#c8c8c8', | |
#} | |
#eocr2022 | |
especies={ | |
'ANE':'#00ff00', | |
'PIL':'#0000ff', | |
'MAS':'#00ffff', | |
'MAC':'#ff0000', | |
'HOM':'#ffff00', | |
'HMM':'#ffffc0', | |
'BOG':'#c8c8c8', | |
'MAV':'#b5fe5f', | |
'SNS':'#c8c8c8', | |
'BOC':'#c8c8c8', | |
'SAA':'#c8c8c8'} | |
def creaCapaTMEDIA(camp,especie): | |
nombreCapa='%s_MLEN_%s' %(camp,especie) | |
# Creamos la consulta | |
sql="""(SELECT survey,platform_code,operation_code,species_code,mlength,stddev,operation_pt from lfd_meanlength left join species using (species_code) where survey='{0}' and fao3_code='{1}' and row(survey,platform_code,operation_code) in (select survey,platform_code,operation_code from operations where process=true))""".format(camp,especie) | |
print(sql) | |
# Primero creamos el URI y luego la capa | |
uriCapa=QgsDataSourceUri() | |
uriCapa.setConnection('HereTheServerIP','5432','database','user','password') | |
uriCapa.setDataSource("",sql,"operation_pt","","operation_code") | |
layer=QgsVectorLayer(uriCapa.uri(),nombreCapa,"postgres") | |
# Simbología | |
layer.renderer().symbol().symbolLayer(0).setSize(1) | |
layer.renderer().symbol().symbolLayer(0).setColor(QColor('#ff0000')) | |
# Etiquetas | |
label=QgsPalLayerSettings() | |
label.fieldName="""concat('P-',lpad("operation_code",2,'0'),'\n',mlength,' ± ',stddev,' cm')""" | |
label.isExpression=True | |
# Texto etiquetas | |
text_format = QgsTextFormat() | |
text_format.setFont(QFont("Arial", 9)) | |
text_format.setSize(9) | |
buffer_settings = QgsTextBufferSettings() | |
buffer_settings.setEnabled(True) | |
buffer_settings.setSize(1) | |
buffer_settings.setColor(QColor("white")) | |
text_format.setBuffer(buffer_settings) | |
label.setFormat(text_format) | |
# Esta es la manera de hacer lo de el alineamiento | |
label.multilineAlign=QgsPalLayerSettings.MultiLineAlign(1) | |
layer_labels = QgsVectorLayerSimpleLabeling(label) | |
layer.setLabelsEnabled(True) | |
layer.setLabeling(layer_labels) | |
QgsProject.instance().addMapLayer(layer) | |
spes=especies.keys() | |
for spe in spes: | |
creaCapaTMEDIA('ECOCADIZ-R-2023',spe) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment