Tasa equivalente de superficie
Model was written in NetLogo 6.4.0
•
Viewed 111 times
•
Downloaded 0 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Info tab cannot be displayed because of an encoding error
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
breed [ campesinos campesino ] breed [ plantas planta ] breed [ etiquetas etiqueta ] patches-own [ tipo numero_parcela numero_surco ] plantas-own [ especie biomasa etapa mi_parcela ] globals [ largo_parcela ancho_parcela separacion_parcela ;; cordenadas (x,y) de la esquina inferior izquierda de cada parcela x_parcela_1 x_parcela_2 x_parcela_3 x_parcela_4 x_parcela_5 y_parcela_1 y_parcela_2 y_parcela_3 y_parcela_4 y_parcela_5 produccion_policultivo_1 produccion_monocultivo_1 produccion_policultivo_2 produccion_monocultivo_2 produccion_monocultivo_equivalente_1 produccion_monocultivo_equivalente_2 densidad_monocultivo_1 densidad_monocultivo_2 densidad_policultivo_1 densidad_policultivo_2 densidad_relativa_maiz densidad_relativa_frijol LER_referencia delta_t ] to INICIALIZAR clear-all set largo_parcela 10 ;; el numero de cuadros que la conforman es + 1 set ancho_parcela 10 ;; el numero de cuadros que la conforman es + 1 set separacion_parcela 1 set delta_t 1 set-default-shape campesinos "campesino" crear_parcelas poner_etiquetas create-campesinos 1 [ set color red set size 1.5 ] colorear_parches reset-ticks end to crear_parcelas set x_parcela_1 1 set y_parcela_1 4 set x_parcela_2 x_parcela_1 + largo_parcela + separacion_parcela set y_parcela_2 4 set x_parcela_3 x_parcela_2 + largo_parcela + separacion_parcela set y_parcela_3 4 set x_parcela_4 x_parcela_3 + largo_parcela + separacion_parcela set y_parcela_4 4 ask patches [ set tipo "NA" ] let numero_parches largo_parcela * ancho_parcela crear_parcela 1 x_parcela_1 y_parcela_1 numero_parches largo_parcela x_parcela_1 crear_parcela 2 x_parcela_2 y_parcela_2 numero_parches largo_parcela x_parcela_2 crear_parcela 3 x_parcela_3 y_parcela_3 numero_parches largo_parcela x_parcela_3 end to sembrar_planta [ especie_sembrar ] hatch-plantas 1 [ set especie especie_sembrar set etapa "semilla" if especie = "maíz" [ set biomasa 0.1 ] if especie = "frijol" [ set biomasa 0.1 ] dibujar_planta ] end to dibujar_planta if etapa = "semilla" [ set size 0.5 if especie = "maíz" [ set shape "semilla-maiz" ] if especie = "frijol" [ set shape "semilla-frijol" ] ] if etapa = "madura" [ set size biomasa if especie = "maíz" [ set shape "planta-maiz" set color lime] if especie = "frijol" [ set shape "planta-frijol" set color green ] ] if etapa = "cosechada" [ set color yellow ] end to limpiar_todo ask plantas [ die ] end to sembrar_monocultivo_maiz ask plantas with [ numero_parcela = 1 ][ die ] let surcos_sembrar_planta round ( ( largo_parcela ) / distancia_entre_surcos_monocultivo_maiz ) sembrar_num_surcos 1 x_parcela_1 y_parcela_1 "maíz" distancia_entre_plantas_monocultivo_maiz distancia_entre_surcos_monocultivo_maiz surcos_sembrar_planta end to sembrar_monocultivo_frijol ask plantas with [ numero_parcela = 2 ] [die] let surcos_sembrar_planta round ( ( largo_parcela ) / distancia_entre_surcos_monocultivo_frijol ) sembrar_num_surcos 2 x_parcela_2 y_parcela_2 "frijol" distancia_entre_plantas_monocultivo_frijol distancia_entre_surcos_monocultivo_frijol surcos_sembrar_planta end to sembrar_policultivo ask plantas with [ numero_parcela = 3 ] [die] if arreglo = "milpa" [ let surcos_sembrar_planta round ( ( largo_parcela ) / distancia_entre_surcos_policultivo_maiz ) sembrar_num_surcos 3 x_parcela_3 y_parcela_3 "maíz" distancia_entre_plantas_policultivo_maiz distancia_entre_surcos_policultivo_maiz surcos_sembrar_planta sembrar_num_surcos 3 x_parcela_3 y_parcela_3 "frijol" distancia_entre_plantas_policultivo_maiz distancia_entre_surcos_policultivo_maiz surcos_sembrar_planta ] if arreglo = "mixto" [ let y_inicia_surco y_parcela_3 let x_extra_1 0 let x_extra_2 distancia_entre_plantas_policultivo_maiz while [ y_inicia_surco - y_parcela_3 < largo_parcela ] [ sembrar_num_surcos 3 (x_parcela_3 + x_extra_1) y_inicia_surco "maíz" ( 2 * distancia_entre_plantas_policultivo_maiz ) distancia_entre_surcos_policultivo_maiz 1 sembrar_num_surcos 3 (x_parcela_3 + x_extra_2) y_inicia_surco "frijol" ( 2 * distancia_entre_plantas_policultivo_maiz ) distancia_entre_surcos_policultivo_maiz 1 ifelse x_extra_1 = 0 [ set x_extra_1 distancia_entre_plantas_policultivo_maiz ] [ set x_extra_1 0 ] ifelse x_extra_2 = 0 [ set x_extra_2 distancia_entre_plantas_policultivo_maiz ] [ set x_extra_2 0 ] set y_inicia_surco y_inicia_surco + distancia_entre_surcos_policultivo_maiz ] ] if arreglo = "surcos" [ let surcos_sembrar_planta round (( largo_parcela / distancia_entre_surcos_policultivo_maiz_frijol ) / 2) sembrar_num_surcos 3 x_parcela_3 y_parcela_3 "maíz" distancia_entre_plantas_policultivo_maiz ( distancia_entre_surcos_policultivo_maiz_frijol * 2 ) surcos_sembrar_planta sembrar_num_surcos 3 x_parcela_3 (y_parcela_3 + distancia_entre_surcos_policultivo_maiz_frijol) "frijol" distancia_entre_plantas_policultivo_frijol ( distancia_entre_surcos_policultivo_maiz_frijol * 2 ) surcos_sembrar_planta ] if arreglo = "franjas" [ let y_inicia_franja y_parcela_3 while [ y_inicia_franja - y_parcela_3 < largo_parcela ] [ sembrar_num_surcos 3 x_parcela_3 y_inicia_franja "maíz" distancia_entre_plantas_policultivo_maiz distancia_entre_surcos_policultivo_maiz franjas_maiz_policultivo set y_inicia_franja y_inicia_franja + (( franjas_maiz_policultivo - 1) * distancia_entre_surcos_policultivo_maiz ) + distancia_entre_surcos_policultivo_maiz_frijol sembrar_num_surcos 3 x_parcela_3 y_inicia_franja "frijol" distancia_entre_plantas_policultivo_frijol distancia_entre_surcos_policultivo_frijol franjas_frijol_policultivo set y_inicia_franja y_inicia_franja + (( franjas_frijol_policultivo - 1) * distancia_entre_surcos_policultivo_frijol ) + distancia_entre_surcos_policultivo_maiz_frijol ] ] set densidad_relativa_maiz count plantas with [ especie = "maíz" and numero_parcela = 3] / count plantas with [ especie = "maíz" and numero_parcela = 1] set densidad_relativa_frijol count plantas with [ especie = "frijol" and numero_parcela = 3] / count plantas with [ especie = "frijol" and numero_parcela = 2] set LER_referencia densidad_relativa_maiz + densidad_relativa_frijol end to sembrar_num_surcos [ num_parcela corx_inicio cory_inicio especie_sembrar distancia_entre_plantas distancia_entre_surcos num_surcos ] let surcos_sembrados 0 let cory cory_inicio ask campesinos [ set heading 90 while [ surcos_sembrados < num_surcos ] [ if cory > max-pycor [ user-message "No se pudo sembrar toda lo que se requería. La simulación continuará solo con la cantidad de semilla que se sembró." stop ] setxy corx_inicio cory while [ xcor - corx_inicio < largo_parcela] [ if numero_parcela = num_parcela [ sembrar_planta especie_sembrar ] fd distancia_entre_plantas if mostrar_animaciones? [ display ] ] set cory cory + distancia_entre_surcos set surcos_sembrados surcos_sembrados + 1 ] ] end to crecer if not any? plantas with [ numero_parcela = 1 ] or not any? plantas with [ numero_parcela = 2 ][ user-message "No hay nada para crecer... no se ha sembrado nada. Da click primero en SEMBRAR." stop ] repeat 30 [ ask plantas [ (ifelse especie = "maíz" [ let competencia_intra competencia_intra_maiz * count other plantas in-radius radio_interaccion with [ especie = "maíz" ] let competencia_inter ifelse-value numero_parcela = 3 [ competencia_inter_maiz_frijol * count other plantas in-radius radio_interaccion with [ especie = "frijol" ] ][ 0 ] let facilitacion ifelse-value numero_parcela = 3 [ facilitacion_maiz_frijol * count other plantas in-radius radio_interaccion with [ especie = "frijol" ]][ 0 ] set biomasa biomasa + delta_t * ( biomasa * R_maiz * ( 1 - ( biomasa / biomasa_maiz) - competencia_intra - competencia_inter + facilitacion ) ) set etapa "madura" ] especie = "frijol" [ let competencia_intra competencia_intra_frijol * count other plantas in-radius radio_interaccion with [ especie = "frijol" ] let competencia_inter ifelse-value numero_parcela = 3 [ competencia_inter_frijol_maiz * count other plantas in-radius radio_interaccion with [ especie = "maíz" ]] [ 0 ] let facilitacion ifelse-value numero_parcela = 3 [ facilitacion_frijol_maiz * count other plantas in-radius radio_interaccion with [ especie = "maíz" ]] [ 0 ] set biomasa biomasa + delta_t * ( biomasa * R_frijol * ( 1 - ( biomasa / biomasa_frijol) - competencia_intra - competencia_inter + facilitacion ) ) set etapa "madura" ] ) ] set produccion_monocultivo_1 sum [ biomasa ] of plantas with [ numero_parcela = 1 ] set produccion_policultivo_1 sum [ biomasa ] of plantas with [ numero_parcela = 3 and especie = "maíz" ] set produccion_monocultivo_2 sum [ biomasa ] of plantas with [ numero_parcela = 2 ] set produccion_policultivo_2 sum [ biomasa ] of plantas with [ numero_parcela = 3 and especie = "frijol" ] set produccion_monocultivo_equivalente_1 sum [ biomasa ] of plantas with [ numero_parcela = 4 ] set produccion_monocultivo_equivalente_2 sum [ biomasa ] of plantas with [ numero_parcela = 5 ] ask plantas [ set etapa "madura" dibujar_planta ] tick inicializar_grafica_RY graficar_RYs ] end to crear_monocultivos_equivalentes if produccion_monocultivo_1 = 0 and produccion_monocultivo_2 = 0 [ user-message "Antes de crear los monocultivos equivalentes los cultivos deben crecer para obtener las producciones. Da click en CRECER." stop ] ask plantas with [ numero_parcela = 4 or numero_parcela = 5 ] [die] ask patches with [ numero_parcela = 4 or numero_parcela = 5 ] [ set tipo "NA" set numero_parcela 0] let num_parches_parcela_4 0 ifelse ajustar_a_densidad_relativa? [ set num_parches_parcela_4 round (((RY produccion_monocultivo_1 produccion_policultivo_1) / LER_referencia ) * 100) ][ set num_parches_parcela_4 round (((RY produccion_monocultivo_1 produccion_policultivo_1) ) * 100) ] crear_parcela 4 x_parcela_4 y_parcela_4 num_parches_parcela_4 largo_parcela x_parcela_4 set y_parcela_5 max [pycor] of patches with [ numero_parcela = 4 ] set x_parcela_5 max [pxcor] of patches with [ numero_parcela = 4 and pycor = y_parcela_5 ] + 1 let num_parches_parcela_5 0 ifelse ajustar_a_densidad_relativa? [ set num_parches_parcela_5 round (((RY produccion_monocultivo_2 produccion_policultivo_2) / LER_referencia ) * 100) ][ set num_parches_parcela_5 round (((RY produccion_monocultivo_2 produccion_policultivo_2)) * 100) ] crear_parcela 5 x_parcela_5 y_parcela_5 num_parches_parcela_5 largo_parcela x_parcela_4 ;; etiquetar parcela create-turtles 1 [ setxy 43 3 set shape "NA" let RY1 ifelse-value ajustar_a_densidad_relativa? [ precision ((RY produccion_monocultivo_1 produccion_policultivo_1) / LER_referencia) 2 ][ (RY produccion_monocultivo_1 produccion_policultivo_1)] let RY2 ifelse-value ajustar_a_densidad_relativa? [ precision ((RY produccion_monocultivo_2 produccion_policultivo_2) / LER_referencia) 2 ][ (RY produccion_monocultivo_2 produccion_policultivo_2)] let HA ifelse-value ajustar_a_densidad_relativa? [ precision ((LER produccion_monocultivo_1 produccion_policultivo_1 produccion_monocultivo_2 produccion_policultivo_2) / LER_referencia) 2 ][ (LER produccion_monocultivo_1 produccion_policultivo_1 produccion_monocultivo_2 produccion_policultivo_2) ] set label ( word "Monocultivo maíz (" RY1 " ha) \nMonocultivo frijol ( " RY2 " ha) \nSuperficie total = " HA " ha" ) set label-color black ] colorear_parches sembrar_monocultivo_equivalente_1 sembrar_monocultivo_equivalente_2 crecer end to sembrar_monocultivo_equivalente_1 ask plantas with [ numero_parcela = 4 ] [die] let surcos_sembrar_planta round(( largo_parcela / distancia_entre_surcos_monocultivo_maiz ) * (RY produccion_monocultivo_1 produccion_policultivo_1)) + 2 sembrar_num_surcos 4 x_parcela_4 y_parcela_4 "maíz" distancia_entre_plantas_monocultivo_maiz distancia_entre_surcos_monocultivo_maiz surcos_sembrar_planta end to sembrar_monocultivo_equivalente_2 ask plantas with [ numero_parcela = 5 ] [die] let surcos_sembrar_planta round(( largo_parcela / distancia_entre_surcos_monocultivo_frijol ) * (RY produccion_monocultivo_2 produccion_policultivo_2)) + 2 sembrar_num_surcos 5 x_parcela_4 y_parcela_5 "frijol" distancia_entre_plantas_monocultivo_frijol distancia_entre_surcos_monocultivo_frijol surcos_sembrar_planta end to crear_parcela [ num_parcela x_inicial y_inicial num_parches longitud_parcela x_extremo ] let contador_parches_creados 0 let contador_surcos_creados 1 let corx x_inicial let cory y_inicial let coninuar_creacion true while [ contador_parches_creados < num_parches and coninuar_creacion ][ while [ corx - x_extremo + 1 <= longitud_parcela and contador_parches_creados < num_parches ][ let celda patch corx cory ifelse celda != nobody [ ask celda [ set tipo "monocultivo" set numero_parcela num_parcela set numero_surco contador_surcos_creados ] ][ user-message "El espacio necesario para crear los monocultivos equivlentes es mayor al que se puede mostrar en la simulación. La simulación continuará sin considerar ese espacio." set coninuar_creacion false stop ] set contador_parches_creados contador_parches_creados + 1 set corx corx + 1 ] set cory cory + 1 set contador_surcos_creados contador_surcos_creados + 1 set corx x_extremo ] end to-report RY [ M Y ] report precision ( Y / M ) 2 end to-report LER [ M1 Y1 M2 Y2 ] report precision (( RY M1 Y1 ) + ( RY M2 Y2 )) 2 end to graficar_RYs set-current-plot "producción relativa" set-current-plot-pen "RYs" plotxy ( RY produccion_monocultivo_1 produccion_policultivo_1) ( RY produccion_monocultivo_2 produccion_policultivo_2) end to inicializar_grafica_RY let max_cor 1.5 set-current-plot "producción relativa" clear-plot set-current-plot-pen "LER=1" plot-pen-up ifelse ajustar_a_densidad_relativa? [ plotxy (densidad_relativa_maiz * 2) 0 plot-pen-down plotxy 0 (densidad_relativa_frijol * 2) ] [ plotxy 1 0 plot-pen-down plotxy 0 1 ] ;; referencias create-temporary-plot-pen "rel-1" set-plot-pen-color gray + 2 ifelse ajustar_a_densidad_relativa? [ plotxy densidad_relativa_maiz 0 plot-pen-down plotxy densidad_relativa_maiz max_cor ][ plotxy 0.5 0 plot-pen-down plotxy 0.5 max_cor ] create-temporary-plot-pen "rel-2" set-plot-pen-color gray + 2 ifelse ajustar_a_densidad_relativa? [ plotxy 0 densidad_relativa_frijol plot-pen-down plotxy max_cor densidad_relativa_frijol ][ plotxy 0 0.5 plot-pen-down plotxy max_cor 0.5 ] set-plot-x-range 0 max_cor set-plot-y-range 0 max_cor end to colorear_parches ask patches [ set pcolor green + 2 ] ask patches with [ tipo = "monocultivo" or tipo = "policultivo" ][ ifelse numero_surco mod 2 = 0 [ set pcolor brown + 1 ] [ set pcolor brown + 1.5 ] ] end to poner_etiquetas let x_cors [ 10 21 32 ] let y_cors [ 2 2 2 ] let labs ["Monocultivo maíz (1 ha)" "Monocultivo frijol (1 ha)" "Policultivo (1 ha)"] (foreach x_cors y_cors labs [ [x y lab ] -> create-turtles 1 [ setxy x y set shape "NA" set label lab set label-color black ] ] ) end
There is only one version of this model, created about 1 month ago by Luis García.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Tasa equivalente de superficie.png | preview | Preview for 'Tasa equivalente de superficie' | about 1 month ago, by Luis García | Download |
This model does not have any ancestors.
This model does not have any descendants.