Le Specie

Il genere Barbus appartiene all’ordine Cypriniformes, alla famiglia Cyprinidae e comprende un gran numero di specie, diffuse in Europa, Asia e Africa. In Italia, tutti gli autori (Tortonese, 1970; Gandolfi et al, 1991, Zerunian, 2002) sono concordi nel ritenere presenti almeno due specie autoctone: il barbo comune (sinonimo barbo plebeio Barbus plebejus) e il barbo canino Barbus meridionalis.

Ancora dibattuta è la posizione sistematica delle popolazioni centro-meridionali dove è segnalata la presenza di una terza specie, il barbo tiberino Barbus tyberinus, morfologicamente alquanto simile al barbo canino del distretto padano-veneto.

Le specie autoctone italiane di barbo negli ultimi anni hanno subito una crescente rarefazione. La revisione della Lista Rossa IUCN (Rondinini et al., 2013), propone nuove categorie di rischio per le due specie. In particolare rispetto alle precedenti liste basate su valutazioni soggettive di singoli ricercatori (Zerunian, 2007) eleva il livello di minaccia del barbo plebeio a quello VU (vulnerabile) e da VU a EN (in pericolo) per il barbo canino. Ciò giustifica gli interventi proposti in questo formulario con particolare attenzione alle attività ittiogeniche, che diventano imprescindibili per specie a rapido calo demografico. Se in passato, il basso livello di rischio ipotizzato poteva non richiedere interventi rapidi di sostegno a livello ittiogenico, oggigiorno, le minacce e il costante peggioramento quali/quantitativo delle popolazioni di entrambe le specie in Emilia Romagna, non giustificano l’approccio cautelativo proposto da Zerunian (2004) con lo scopo di evitare il ripopolamento con ibridi. Sarà cura dei responsabili del progetto operare una rigida selezione morfo-fenotipica e genetica degli esemplari da avviare alla carriera riproduttiva mediante caratterizzazione molecolare.

Una quantificazione demografica aggiornata delle popolazioni di B. plebejus e meridionalis nelle province di Parma, Piacenza e Reggio Emilia non è al momento disponibile. I censimenti delle due specie vengono infatti effettuati casualmente nel corso di valutazioni sulle popolazioni di salmonidi nei tratti montani o nel corso di valutazioni ambientali. Una stima quantitativa della consistenza attuale dei popolamenti dei due ciprinidi può pertanto essere ottenuta quasi esclusivamente da letteratura grigia e dall’esperienza dei proponenti consapevoli del forte decremento subito dalla specie nel corso degli anni. Esistono dati pregressi riportati nelle carte ittiche, i quali tuttavia risultano obsoleti (di oltre quindici anni fa). Un aggiornamento può essere estrapolato da monitoraggi ittiologici qualitativi  o semiquantitativi, quali quelli effettuati per alcuni piani di gestione di SIC/ZPS nel 2011 (nei SIC IT4030013 e IT4030023) o in specifici studi locali (ad es. in prossimità degli impianti ittiogenici di progetto).

Sulla base dell’esperienza personale dei proponenti si ritiene pertanto opportuno segnalare che dal punto di vista demografico, laddove presenti, le popolazioni di B. plebejus e meridionalis risultano costituite da un numero limitato di esemplari, in grado di compiere ampi spostamenti tra diversi corsi d’acqua per regimi idrologici variabili. Una stima di tipo semiquantitativo ma decisamente costante nei diversi corsi d’acqua ove le specie risultano presenti, quantizza i popolamenti in un numero di esemplari variabile tra 1-5 (categoria “raro”) e tra 6-10 (categoria “scarso”) per circa 400mq di corso d’acqua. Negli ultimi 5 anni non sono mai stati identificate popolazioni più consistenti, ad eccezione di un’unica popolazione di B. plebejus nell’alto tratto del F. Taro in località Piane di Carniglia (circa 20 esemplari per tratto fluviale omogeneo di circa 300 mq).


class "Gallery" already exists while executing "::itcl::class Gallery { inherit Barbie private variable galleria_d private variable gallery_sect_menu private variabl..." (in namespace eval "::rwdatas" script line 3) invoked from within "namespace eval ::rwdatas { ::itcl::class Gallery { inherit Barbie private variable galleria_d private variable gallery_s..."

OUTPUT BUFFER:

source [file join $rweb_root tcl before.tcl] # # -- gallery.tcl # # datasource per pagina gestione delle # # package require Barbie package require rwbinary namespace eval ::rwdatas { ::itcl::class Gallery { inherit Barbie private variable galleria_d private variable gallery_sect_menu private variable gallery_menu private common thumb_h_size 200 private common gallery_dir private common thumbnails_dir private method page_handled {v p} public method willHandle {arglist keyvar} public method fetchData {key reassigned_key} public method init {args} public method menu_list {page} #public method to_url {lm} { return [Barbie::to_url $lm] } #public method will_provide {keyword reassigned_key} public proc create_thumbnail {photo} public proc gallery {} public proc gallery_latest_entries {dbhandle nentries} public proc thumbnail_fs_path {photo} public proc thumbnail_path {photo} public proc thumbnail_exists {photo} } ::itcl::body Gallery::thumbnail_exists {photo} { return [file exists [thumbnail_fs_path $photo]] } ::itcl::body Gallery::thumbnail_fs_path {photo} { return [file join galleria thumbnails ${photo}] } ::itcl::body Gallery::thumbnail_path {photo} { return [::rivetweb::rewrite_generic_path [join [list galleria thumbnails $photo] "/"]] } ::itcl::body Gallery::create_thumbnail {photo} { set thumbnail [thumbnail_fs_path $photo] set photo_name [file join $gallery_dir $photo] if {[catch {exec gm convert $photo_name -geometry $thumb_h_size $thumbnail} e]} { ::rivet::apache_log_error err "Error creating thumbnail $thumbnail: $e" return -code error -errorcode thumbnail_creation_error $e $e } } # -- page_handled # # ::itcl::body Gallery::page_handled {varsqs page_key} { upvar $page_key p foreach p [list photo gallery] { if {[dict exists $varsqs $p]} { return true } } return false } ::itcl::body Gallery::willHandle {arglist keyvar} { upvar $keyvar key set varsqs [dict create {*}$arglist] if {[dict exists $varsqs photo]} { set photo_filename [dict get $varsqs photo] # # proposed change #set key "view_photo_[regsub -all {[^[:alnum:]]} ${photo_filename}]" # set key "view_photo_[::rivet::escape_string ${photo_filename}]" return -code break -errorcode rw_ok } elseif {[dict exists $varsqs gallery]} { set key "view_gallery" return -code break -errorcode rw_ok } return -code continue -errorcode rw_continue } ::itcl::body Gallery::fetchData {key reassigned_key} { upvar $reassigned_key rkey set rkey $key set key [::rivet::unescape_string $key] switch -regexp -matchvar photo_name -- $key { view_photo_(.+) { $this check_class ::rwpage::Photo set photo_name [lindex $photo_name 1] set p [::rwpage::Photo ::#auto $key $gallery_dir $photo_name] #::rivet::apache_log_error notice "new instance of $p ::rwpage::Photo" } view_gallery { $this check_class ::rwpage::Gallery set p [::rwpage::Gallery ::#auto $key $gallery_dir] #::rivet::apache_log_error notice "new instance of $p ::rwpage::Gallery" } default { set p "" } } #::rivet::apache_log_error notice "new instance of ::rwpage::Photo (binary: [$p binary_content])" return $p } ::itcl::body Gallery::gallery_latest_entries {dbhandle nentries} { set q "select g.*,s.descrizione from galleria g " append q "join sezioni s on s.sectionid=g.sezione " append q "order by g.creazione desc limit $nentries;" set galleria_d [dict create] $dbhandle forall $q photo_a { dict set galleria_d [incr idx] [dict create {*}[array get photo_a]] } return $galleria_d } ::itcl::body Gallery::gallery {} { set q "select g.*,s.descrizione from galleria g " append q "join sezioni s on s.sectionid=g.sezione order by s.descrizione,s.ordine,g.ordine;" set galleria_d [dict create] $::barbie::dbhandle forall $q photo_a { set photo_name $photo_a(filename) set sezione $photo_a(sezione) set descrizione $photo_a(descrizione) unset photo_a(sezione) unset photo_a(filename) unset photo_a(descrizione) dict set galleria_d $sezione photos $photo_name \ [dict create {*}[array get photo_a]] dict set galleria_d $sezione descrizione $descrizione } return $galleria_d } ::itcl::body Gallery::init {args} { Barbie::init $args set gallery_dir [file join $::rivetweb::site_base galleria] if {![file exists $gallery_dir]} { file mkdir $gallery_dir } set thumbnails_dir [file join $gallery_dir thumbnails] if {![file exists $thumbnails_dir]} { file mkdir $thumbnails_dir } set galleria_d [::rwdatas::Gallery::gallery] $this register_class ::rwpage::Photo $this register_class ::rwpage::Gallery } ::itcl::body Gallery::menu_list {page} { set page_class [$page info class] if {($page_class == "::rwpage::Gallery") || \ ($page_class == "::rwpage::Photo")} { set mm $::rivetweb::menumodel set lm $::rivetweb::linkmodel set galleria_d [::rwdatas::Gallery::gallery] if {[dict size $galleria_d] == 0} { return [Datasource::menu_list $page] } catch {$gallery_menu destroy} set gallery_menu [$mm create_menu sezioni_galleria none normal] $gallery_menu assign title "Photo Gallery" en $gallery_menu assign title "Galleria Fotografica" it dict for {sectid section_d} $galleria_d { set gallery_section [$lm create Gallery "" \ [list it [dict get $galleria_d $sectid descrizione]] \ [dict create gallery 1 section $sectid] ""] $gallery_menu add_link $gallery_section } return [list evidenza $gallery_menu] } else { return {} } } } package provide Gallery 1.0 source [file join $rweb_root tcl after.tcl]