Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- breaks_cuts<-function(l,breaks){
- brks<-cut(l$value,breaks=breaks,include.lowest=TRUE)
- return(brks)
- }
- gen_plot<-function(arr,brks,lons,lats,season,var){
- longdata<-melt(arr)
- longdata$brks<-breaks_cuts(longdata,brks)
- longdata_n<-longdata[(longdata[,2]<=nh_bound_lower & longdata[,2]>=nh_bound_upper),]
- longdata_s<-longdata[(longdata[,2]<=sh_bound_lower & longdata[,2]>=sh_bound_upper),]
- lev_order<-levels(as.factor(longdata$brks))
- contour_cols<-colorRampPalette(c("yellow","green","blue","purple","red"))(length(lev_order))
- print(lev_order)
- print(contour_cols)
- m<-map_data("world2")
- gplot<-ggplot()+
- coord_cartesian(xlim=c(min(lons),max(lons)),
- ylim=c(min(lats),max(lats))) +
- geom_map(data= m, map = m, aes(map_id=region)) +
- stat_contour(aes(x=lons[longdata_n[,1]],
- y=lats[longdata_n[,2]],
- z = longdata_n[,3]),breaks=brks)+
- stat_contour(aes(x=lons[longdata_s[,1]],
- y=lats[longdata_s[,2]],
- z = longdata_s[,3]),breaks=brks) +
- geom_tile(data=longdata_n,aes(x=lons[longdata_n[,1]],
- y=lats[longdata_n[,2]],fill=brks),alpha=0.5) +
- geom_tile(data=longdata_s,aes(x=lons[longdata_s[,1]],
- y=lats[longdata_s[,2]],fill=brks),alpha=0.5) +
- scale_fill_manual(breaks=lev_order,values=contour_cols) +
- geom_rect(aes(xmin = lons[which(lons==LEFT_BOUND[2])],
- xmax = lons[which(lons==RIGHT_BOUND[2])],
- ymin = lats[which(lats==MIN_LAT[2])],
- ymax = lats[which(lats==MAX_LAT[2])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = lons[which(lons==LEFT_BOUND[3])],
- xmax = lons[which(lons==RIGHT_BOUND[3])],
- ymin = lats[which(lats==MIN_LAT[3])],
- ymax = lats[which(lats==MAX_LAT[3])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = lons[which(lons==LEFT_BOUND[5])],
- xmax = lons[which(lons==RIGHT_BOUND[5])],
- ymin = lats[which(lats==MIN_LAT[5])],
- ymax = lats[which(lats==MAX_LAT[5])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = lons[which(lons==LEFT_BOUND[6])],
- xmax = lons[which(lons==RIGHT_BOUND[6])],
- ymin = lats[which(lats==MIN_LAT[6])],
- ymax = lats[which(lats==MAX_LAT[6])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = lons[which(lons==LEFT_BOUND[1])],
- xmax = 360,
- ymin = lats[which(lats==MIN_LAT[1])],
- ymax = lats[which(lats==MAX_LAT[1])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = 0,
- xmax = lons[which(lons==RIGHT_BOUND[1])],
- ymin = lats[which(lats==MIN_LAT[1])],
- ymax = lats[which(lats==MAX_LAT[1])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = lons[which(lons==LEFT_BOUND[4])],
- xmax = 360,
- ymin = lats[which(lats==MIN_LAT[4])],
- ymax = lats[which(lats==MAX_LAT[4])]),
- fill = "transparent", color = "red", size = 1.5) +
- geom_rect(aes(xmin = 0,
- xmax = lons[which(lons==RIGHT_BOUND[4])],
- ymin = lats[which(lats==MIN_LAT[4])],
- ymax = lats[which(lats==MAX_LAT[4])]),
- fill = "transparent", color = "red", size = 1.5) +
- ggtitle(sprintf("%s Threshold for %s",var,season)) +
- labs(x="Longitude",y="Latitude")
- return(gplot)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement