Map all time steps of a NetCDF file in R using a loop Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Using NetCDF for point time-series observations?Extract single datapoint from netCDF file in R using ndcfPlotting NetCDF file using lat and lon contained in variablesCreate a new NetCDF file combining information from two other NetCDF files in RExtract time series values from a 3D (lon,lat,time) NetCDF file using PythonConversion of netcdf file to csv file using R programmingPlotting NetCDF File using R?Merging netcdf files into one using R?Can't extract chlorophyll a values from NetCDF file using RMake a map using netCDF file

Fundamental Solution of the Pell Equation

Amount of permutations on an NxNxN Rubik's Cube

How to down pick a chord with skipped strings?

Is it ethical to give a final exam after the professor has quit before teaching the remaining chapters of the course?

Crossing US/Canada Border for less than 24 hours

How to Make a Beautiful Stacked 3D Plot

Do I really need recursive chmod to restrict access to a folder?

Is "Reachable Object" really an NP-complete problem?

Is there a holomorphic function on open unit disc with this property?

What do you call the main part of a joke?

Delete nth line from bottom

Does classifying an integer as a discrete log require it be part of a multiplicative group?

Is there any way for the UK Prime Minister to make a motion directly dependent on Government confidence?

If my PI received research grants from a company to be able to pay my postdoc salary, did I have a potential conflict interest too?

How to react to hostile behavior from a senior developer?

How to convince students of the implication truth values?

Can anything be seen from the center of the Boötes void? How dark would it be?

Using et al. for a last / senior author rather than for a first author

Find the length x such that the two distances in the triangle are the same

2001: A Space Odyssey's use of the song "Daisy Bell" (Bicycle Built for Two); life imitates art or vice-versa?

Most bit efficient text communication method?

Why do we bend a book to keep it straight?

Extracting terms with certain heads in a function

What is the meaning of the simile “quick as silk”?



Map all time steps of a NetCDF file in R using a loop



Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
Announcing the arrival of Valued Associate #679: Cesar Manara
Unicorn Meta Zoo #1: Why another podcast?Using NetCDF for point time-series observations?Extract single datapoint from netCDF file in R using ndcfPlotting NetCDF file using lat and lon contained in variablesCreate a new NetCDF file combining information from two other NetCDF files in RExtract time series values from a 3D (lon,lat,time) NetCDF file using PythonConversion of netcdf file to csv file using R programmingPlotting NetCDF File using R?Merging netcdf files into one using R?Can't extract chlorophyll a values from NetCDF file using RMake a map using netCDF file



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I have a NetCDF containing temperature values over a certain region for 2011, with 1-hour intervals, so that means that I have 8760 maps. What I want to do, is plot all 8760 maps using one color palette, and also on every map plot the exact day and time on the map, because I want to show the evolution of temperature over a region, in a year. How can I do this using a for loop in R?



The ncdump -h of my .nc files gives the following result:



netcdf temperature {
dimensions:
rlon = 169 ;
rlat = 155 ;
height = 1 ;
time = UNLIMITED ; // (8760 currently)
variables:
double rlon(rlon) ;
rlon:standard_name = "grid_longitude" ;
rlon:long_name = "longitude in rotated pole grid" ;
rlon:units = "degrees" ;
rlon:axis = "X" ;
double rlat(rlat) ;
rlat:standard_name = "grid_latitude" ;
rlat:long_name = "latitude in rotated pole grid" ;
rlat:units = "degrees" ;
rlat:axis = "Y" ;
char rotated_pole ;
rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
rotated_pole:grid_north_pole_latitude = 39.25 ;
rotated_pole:grid_north_pole_longitude = -162. ;
double height(height) ;
height:standard_name = "height" ;
height:long_name = "height" ;
height:units = "m" ;
height:positive = "up" ;
height:axis = "Z" ;
double time(time) ;
time:standard_name = "time" ;
time:units = "hours since 2011-01-01 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
float var11(time, height, rlat, rlon) ;
var11:table = 2 ;
var11:grid_mapping = "rotated_pole" ;









share|improve this question



















  • 3





    Start with library(raster); r <- raster("ncfile.nc", band = 1); plot(r); Use "zlim = "argument to plot to keep the range constant, and pass in the colours you want to "col = "

    – mdsumner
    Jan 22 '17 at 2:53











  • How could this work in a loop, printing each time the exact day and time of the map?

    – Maria Karypidou
    Jan 22 '17 at 13:42











  • Try getZ(r) does that give the right time?

    – mdsumner
    Jan 22 '17 at 21:39

















1















I have a NetCDF containing temperature values over a certain region for 2011, with 1-hour intervals, so that means that I have 8760 maps. What I want to do, is plot all 8760 maps using one color palette, and also on every map plot the exact day and time on the map, because I want to show the evolution of temperature over a region, in a year. How can I do this using a for loop in R?



The ncdump -h of my .nc files gives the following result:



netcdf temperature {
dimensions:
rlon = 169 ;
rlat = 155 ;
height = 1 ;
time = UNLIMITED ; // (8760 currently)
variables:
double rlon(rlon) ;
rlon:standard_name = "grid_longitude" ;
rlon:long_name = "longitude in rotated pole grid" ;
rlon:units = "degrees" ;
rlon:axis = "X" ;
double rlat(rlat) ;
rlat:standard_name = "grid_latitude" ;
rlat:long_name = "latitude in rotated pole grid" ;
rlat:units = "degrees" ;
rlat:axis = "Y" ;
char rotated_pole ;
rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
rotated_pole:grid_north_pole_latitude = 39.25 ;
rotated_pole:grid_north_pole_longitude = -162. ;
double height(height) ;
height:standard_name = "height" ;
height:long_name = "height" ;
height:units = "m" ;
height:positive = "up" ;
height:axis = "Z" ;
double time(time) ;
time:standard_name = "time" ;
time:units = "hours since 2011-01-01 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
float var11(time, height, rlat, rlon) ;
var11:table = 2 ;
var11:grid_mapping = "rotated_pole" ;









share|improve this question



















  • 3





    Start with library(raster); r <- raster("ncfile.nc", band = 1); plot(r); Use "zlim = "argument to plot to keep the range constant, and pass in the colours you want to "col = "

    – mdsumner
    Jan 22 '17 at 2:53











  • How could this work in a loop, printing each time the exact day and time of the map?

    – Maria Karypidou
    Jan 22 '17 at 13:42











  • Try getZ(r) does that give the right time?

    – mdsumner
    Jan 22 '17 at 21:39













1












1








1








I have a NetCDF containing temperature values over a certain region for 2011, with 1-hour intervals, so that means that I have 8760 maps. What I want to do, is plot all 8760 maps using one color palette, and also on every map plot the exact day and time on the map, because I want to show the evolution of temperature over a region, in a year. How can I do this using a for loop in R?



The ncdump -h of my .nc files gives the following result:



netcdf temperature {
dimensions:
rlon = 169 ;
rlat = 155 ;
height = 1 ;
time = UNLIMITED ; // (8760 currently)
variables:
double rlon(rlon) ;
rlon:standard_name = "grid_longitude" ;
rlon:long_name = "longitude in rotated pole grid" ;
rlon:units = "degrees" ;
rlon:axis = "X" ;
double rlat(rlat) ;
rlat:standard_name = "grid_latitude" ;
rlat:long_name = "latitude in rotated pole grid" ;
rlat:units = "degrees" ;
rlat:axis = "Y" ;
char rotated_pole ;
rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
rotated_pole:grid_north_pole_latitude = 39.25 ;
rotated_pole:grid_north_pole_longitude = -162. ;
double height(height) ;
height:standard_name = "height" ;
height:long_name = "height" ;
height:units = "m" ;
height:positive = "up" ;
height:axis = "Z" ;
double time(time) ;
time:standard_name = "time" ;
time:units = "hours since 2011-01-01 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
float var11(time, height, rlat, rlon) ;
var11:table = 2 ;
var11:grid_mapping = "rotated_pole" ;









share|improve this question
















I have a NetCDF containing temperature values over a certain region for 2011, with 1-hour intervals, so that means that I have 8760 maps. What I want to do, is plot all 8760 maps using one color palette, and also on every map plot the exact day and time on the map, because I want to show the evolution of temperature over a region, in a year. How can I do this using a for loop in R?



The ncdump -h of my .nc files gives the following result:



netcdf temperature {
dimensions:
rlon = 169 ;
rlat = 155 ;
height = 1 ;
time = UNLIMITED ; // (8760 currently)
variables:
double rlon(rlon) ;
rlon:standard_name = "grid_longitude" ;
rlon:long_name = "longitude in rotated pole grid" ;
rlon:units = "degrees" ;
rlon:axis = "X" ;
double rlat(rlat) ;
rlat:standard_name = "grid_latitude" ;
rlat:long_name = "latitude in rotated pole grid" ;
rlat:units = "degrees" ;
rlat:axis = "Y" ;
char rotated_pole ;
rotated_pole:grid_mapping_name = "rotated_latitude_longitude" ;
rotated_pole:grid_north_pole_latitude = 39.25 ;
rotated_pole:grid_north_pole_longitude = -162. ;
double height(height) ;
height:standard_name = "height" ;
height:long_name = "height" ;
height:units = "m" ;
height:positive = "up" ;
height:axis = "Z" ;
double time(time) ;
time:standard_name = "time" ;
time:units = "hours since 2011-01-01 00:00:00" ;
time:calendar = "proleptic_gregorian" ;
float var11(time, height, rlat, rlon) ;
var11:table = 2 ;
var11:grid_mapping = "rotated_pole" ;






r maps netcdf






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 22 '17 at 17:21







Maria Karypidou

















asked Jan 22 '17 at 2:39









Maria KarypidouMaria Karypidou

662725




662725







  • 3





    Start with library(raster); r <- raster("ncfile.nc", band = 1); plot(r); Use "zlim = "argument to plot to keep the range constant, and pass in the colours you want to "col = "

    – mdsumner
    Jan 22 '17 at 2:53











  • How could this work in a loop, printing each time the exact day and time of the map?

    – Maria Karypidou
    Jan 22 '17 at 13:42











  • Try getZ(r) does that give the right time?

    – mdsumner
    Jan 22 '17 at 21:39












  • 3





    Start with library(raster); r <- raster("ncfile.nc", band = 1); plot(r); Use "zlim = "argument to plot to keep the range constant, and pass in the colours you want to "col = "

    – mdsumner
    Jan 22 '17 at 2:53











  • How could this work in a loop, printing each time the exact day and time of the map?

    – Maria Karypidou
    Jan 22 '17 at 13:42











  • Try getZ(r) does that give the right time?

    – mdsumner
    Jan 22 '17 at 21:39







3




3





Start with library(raster); r <- raster("ncfile.nc", band = 1); plot(r); Use "zlim = "argument to plot to keep the range constant, and pass in the colours you want to "col = "

– mdsumner
Jan 22 '17 at 2:53





Start with library(raster); r <- raster("ncfile.nc", band = 1); plot(r); Use "zlim = "argument to plot to keep the range constant, and pass in the colours you want to "col = "

– mdsumner
Jan 22 '17 at 2:53













How could this work in a loop, printing each time the exact day and time of the map?

– Maria Karypidou
Jan 22 '17 at 13:42





How could this work in a loop, printing each time the exact day and time of the map?

– Maria Karypidou
Jan 22 '17 at 13:42













Try getZ(r) does that give the right time?

– mdsumner
Jan 22 '17 at 21:39





Try getZ(r) does that give the right time?

– mdsumner
Jan 22 '17 at 21:39










1 Answer
1






active

oldest

votes


















0














This is given the assumption that there is only one variable in the netcdf, called temperature.



Check the name of your dimenions (assuming it's called "time");



names(your.nc$dim)


then use the length of your time dimension for the loop. It will loop through every time step, extract the raster and plot it. You'll need to determine what text you add etc, but the e.g. uses POSIXct notation:



require(ggplot2)
require(raster)
require(ncdf4)
# loop through length of timesteps (your case = 8760)

for(i in 1:length(your.nc$dim$time$vals))

# rasterize data for every time step (for variable, "temperature")
r <- raster("./path/your.nc",varname="temperature",band=i)
rxy <- as.data.frame(r,xy=T)
# plot in ggplot2
ggplot()+
geom_tile(data=rxy,aes(x=x,y=y,fill=rxy[,3]))+
labs(x="X",y="Y",title=as.POSIXct(i*3600,origin='2011-01-01 00:00'))




the as.POSXIct function takes a number, in seconds, and converts it to a datetime object from the origin nominated.






share|improve this answer























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "79"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f225372%2fmap-all-time-steps-of-a-netcdf-file-in-r-using-a-loop%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    This is given the assumption that there is only one variable in the netcdf, called temperature.



    Check the name of your dimenions (assuming it's called "time");



    names(your.nc$dim)


    then use the length of your time dimension for the loop. It will loop through every time step, extract the raster and plot it. You'll need to determine what text you add etc, but the e.g. uses POSIXct notation:



    require(ggplot2)
    require(raster)
    require(ncdf4)
    # loop through length of timesteps (your case = 8760)

    for(i in 1:length(your.nc$dim$time$vals))

    # rasterize data for every time step (for variable, "temperature")
    r <- raster("./path/your.nc",varname="temperature",band=i)
    rxy <- as.data.frame(r,xy=T)
    # plot in ggplot2
    ggplot()+
    geom_tile(data=rxy,aes(x=x,y=y,fill=rxy[,3]))+
    labs(x="X",y="Y",title=as.POSIXct(i*3600,origin='2011-01-01 00:00'))




    the as.POSXIct function takes a number, in seconds, and converts it to a datetime object from the origin nominated.






    share|improve this answer



























      0














      This is given the assumption that there is only one variable in the netcdf, called temperature.



      Check the name of your dimenions (assuming it's called "time");



      names(your.nc$dim)


      then use the length of your time dimension for the loop. It will loop through every time step, extract the raster and plot it. You'll need to determine what text you add etc, but the e.g. uses POSIXct notation:



      require(ggplot2)
      require(raster)
      require(ncdf4)
      # loop through length of timesteps (your case = 8760)

      for(i in 1:length(your.nc$dim$time$vals))

      # rasterize data for every time step (for variable, "temperature")
      r <- raster("./path/your.nc",varname="temperature",band=i)
      rxy <- as.data.frame(r,xy=T)
      # plot in ggplot2
      ggplot()+
      geom_tile(data=rxy,aes(x=x,y=y,fill=rxy[,3]))+
      labs(x="X",y="Y",title=as.POSIXct(i*3600,origin='2011-01-01 00:00'))




      the as.POSXIct function takes a number, in seconds, and converts it to a datetime object from the origin nominated.






      share|improve this answer

























        0












        0








        0







        This is given the assumption that there is only one variable in the netcdf, called temperature.



        Check the name of your dimenions (assuming it's called "time");



        names(your.nc$dim)


        then use the length of your time dimension for the loop. It will loop through every time step, extract the raster and plot it. You'll need to determine what text you add etc, but the e.g. uses POSIXct notation:



        require(ggplot2)
        require(raster)
        require(ncdf4)
        # loop through length of timesteps (your case = 8760)

        for(i in 1:length(your.nc$dim$time$vals))

        # rasterize data for every time step (for variable, "temperature")
        r <- raster("./path/your.nc",varname="temperature",band=i)
        rxy <- as.data.frame(r,xy=T)
        # plot in ggplot2
        ggplot()+
        geom_tile(data=rxy,aes(x=x,y=y,fill=rxy[,3]))+
        labs(x="X",y="Y",title=as.POSIXct(i*3600,origin='2011-01-01 00:00'))




        the as.POSXIct function takes a number, in seconds, and converts it to a datetime object from the origin nominated.






        share|improve this answer













        This is given the assumption that there is only one variable in the netcdf, called temperature.



        Check the name of your dimenions (assuming it's called "time");



        names(your.nc$dim)


        then use the length of your time dimension for the loop. It will loop through every time step, extract the raster and plot it. You'll need to determine what text you add etc, but the e.g. uses POSIXct notation:



        require(ggplot2)
        require(raster)
        require(ncdf4)
        # loop through length of timesteps (your case = 8760)

        for(i in 1:length(your.nc$dim$time$vals))

        # rasterize data for every time step (for variable, "temperature")
        r <- raster("./path/your.nc",varname="temperature",band=i)
        rxy <- as.data.frame(r,xy=T)
        # plot in ggplot2
        ggplot()+
        geom_tile(data=rxy,aes(x=x,y=y,fill=rxy[,3]))+
        labs(x="X",y="Y",title=as.POSIXct(i*3600,origin='2011-01-01 00:00'))




        the as.POSXIct function takes a number, in seconds, and converts it to a datetime object from the origin nominated.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered May 29 '18 at 9:10









        SamSam

        7871826




        7871826



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f225372%2fmap-all-time-steps-of-a-netcdf-file-in-r-using-a-loop%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221

            Creating closest line along the point''s azimuth using PostgreSQL Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Drawing line between points at specific distance in PostGIS?How to efficiently find the closest point over the dateline?How to find the nearest point by using PostGIS function?PostGIS nearest point with LATERAL JOIN in PostgreSQL 9.3+Creating a table and inserting selected streets using plpgsql functionsCreating a table that stores Distances and other columnSaving select query results (year wise) from PostgreSQL/PostGIS to text filesWhat is the information behind this geometry?How to give start and end vertex ids dynamically in pgr_dijkstra?Point to Polygon nearest distance DS_distance is not using geography index & knn <-> or <#> does not give result in orderLine to point conversion with start point and end point detection?

            Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given