Why raster layer name change to default when using raster::calc function?How to change field name in raster file?why preview image is blank for ImageMosaicJDBC (postgis raster) layer?Problem in adding raster layer from arcpyRpy2: how do I use the function 'as' (r library methods) in python?Setting default raster layer style in QGIS?Efficiently changing field names added by Extract Multi Values to Points tool in ArcPy for large dataset?Converting .adf raster from UTM to lat/long without UTM zones in RError using calc() function: cannot use this function using R?Setting band names when writing multiple layer rasters using GDAL with Python?projectRaster() result does not have the same nrow and ncol, but has same resolution

What are the differences between the usage of 'it' and 'they'?

Prove that NP is closed under karp reduction?

How to format long polynomial?

Can a Warlock become Neutral Good?

Why do falling prices hurt debtors?

A newer friend of my brother's gave him a load of baseball cards that are supposedly extremely valuable. Is this a scam?

Do I have a twin with permutated remainders?

What would happen to a modern skyscraper if it rains micro blackholes?

How can I make my BBEG immortal short of making them a Lich or Vampire?

How much RAM could one put in a typical 80386 setup?

Have astronauts in space suits ever taken selfies? If so, how?

LaTeX closing $ signs makes cursor jump

Can divisibility rules for digits be generalized to sum of digits

How to write a macro that is braces sensitive?

Modeling an IPv4 Address

How is it possible to have an ability score that is less than 3?

Why does Kotter return in Welcome Back Kotter?

Today is the Center

What do the dots in this tr command do: tr .............A-Z A-ZA-Z <<< "JVPQBOV" (with 13 dots)

Example of a continuous function that don't have a continuous extension

Test if tikzmark exists on same page

Which models of the Boeing 737 are still in production?

Why do I get two different answers for this counting problem?

Is it tax fraud for an individual to declare non-taxable revenue as taxable income? (US tax laws)



Why raster layer name change to default when using raster::calc function?


How to change field name in raster file?why preview image is blank for ImageMosaicJDBC (postgis raster) layer?Problem in adding raster layer from arcpyRpy2: how do I use the function 'as' (r library methods) in python?Setting default raster layer style in QGIS?Efficiently changing field names added by Extract Multi Values to Points tool in ArcPy for large dataset?Converting .adf raster from UTM to lat/long without UTM zones in RError using calc() function: cannot use this function using R?Setting band names when writing multiple layer rasters using GDAL with Python?projectRaster() result does not have the same nrow and ncol, but has same resolution






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








0















Why raster layer name change to default when using raster::calc function, but not when using Arith-methods:



Toy example copied from Reference manual (calc function).



library(raster)
r <- raster(ncols=36, nrows=18)
r[] <- 1:ncell(r)
names(r) <- "Band1"
r

rc1 <- calc(r, function(x) x * 10 )
names(rc1) # Default name "layer"

#But when:
rc2 <- r*10
names(rc2) #It conserves the name "Band1"


I did not find an easy way to check the calc function code?










share|improve this question









New contributor




Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


























    0















    Why raster layer name change to default when using raster::calc function, but not when using Arith-methods:



    Toy example copied from Reference manual (calc function).



    library(raster)
    r <- raster(ncols=36, nrows=18)
    r[] <- 1:ncell(r)
    names(r) <- "Band1"
    r

    rc1 <- calc(r, function(x) x * 10 )
    names(rc1) # Default name "layer"

    #But when:
    rc2 <- r*10
    names(rc2) #It conserves the name "Band1"


    I did not find an easy way to check the calc function code?










    share|improve this question









    New contributor




    Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      0












      0








      0








      Why raster layer name change to default when using raster::calc function, but not when using Arith-methods:



      Toy example copied from Reference manual (calc function).



      library(raster)
      r <- raster(ncols=36, nrows=18)
      r[] <- 1:ncell(r)
      names(r) <- "Band1"
      r

      rc1 <- calc(r, function(x) x * 10 )
      names(rc1) # Default name "layer"

      #But when:
      rc2 <- r*10
      names(rc2) #It conserves the name "Band1"


      I did not find an easy way to check the calc function code?










      share|improve this question









      New contributor




      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.












      Why raster layer name change to default when using raster::calc function, but not when using Arith-methods:



      Toy example copied from Reference manual (calc function).



      library(raster)
      r <- raster(ncols=36, nrows=18)
      r[] <- 1:ncell(r)
      names(r) <- "Band1"
      r

      rc1 <- calc(r, function(x) x * 10 )
      names(rc1) # Default name "layer"

      #But when:
      rc2 <- r*10
      names(rc2) #It conserves the name "Band1"


      I did not find an easy way to check the calc function code?







      raster r






      share|improve this question









      New contributor




      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited Apr 3 at 7:52









      Sara Belzak

      52




      52






      New contributor




      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked Apr 3 at 5:36









      Camilo ErassoCamilo Erasso

      32




      32




      New contributor




      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Camilo Erasso is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          1 Answer
          1






          active

          oldest

          votes


















          1














          There's no mention of what happens with layer names in the documentation for calc so I suspect the answer is "just because". If you rely on layer names in your code then you should probably explicitly set them any time you think they might change.



          Note that arithmetic can change layer names - even though both operands here have the same name, the output is different:



          > names(r)
          [1] "Foo"
          > names(r*r)
          [1] "layer"


          Even simple functions of one raster can change layer names:



          > names(r)
          [1] "Foo"
          > names(sqrt(r))
          [1] "layer"


          I think the best advice is to treat layer names as fragile and reset them when you need them, copying them from source rasters at the start of a processing step.



          I'm not sure there's always a sensible default when doing arithmetic - suppose you are doing operations on more than one raster, which one do you use? Simpler to let the user decide. The setNames function comes in very handy here:



          Two rasters with differing names:



          > names(r)
          [1] "Foo"
          > names(q)
          [1] "Bar"


          When multiplied, returns neither:



          > names(r*q)
          [1] "layer"


          Wrap in setNames and get a raster:



          > rq = setNames(r*q, names(q))
          > rq2 = setNames(r*q, names(r))


          With whichever names you ask for:



          > names(rq)
          [1] "Bar"
          > names(rq2)
          [1] "Foo"
          >


          a = setNames(b, n) is essentially the same as a = b; names(a)=n; return(a)






          share|improve this answer

























          • Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

            – Camilo Erasso
            Apr 3 at 18:52











          • I think setNames does the job nice enough - see edit.

            – Spacedman
            Apr 3 at 19:01











          • It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

            – Camilo Erasso
            Apr 3 at 19:23











          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
          );



          );






          Camilo Erasso is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f317591%2fwhy-raster-layer-name-change-to-default-when-using-rastercalc-function%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









          1














          There's no mention of what happens with layer names in the documentation for calc so I suspect the answer is "just because". If you rely on layer names in your code then you should probably explicitly set them any time you think they might change.



          Note that arithmetic can change layer names - even though both operands here have the same name, the output is different:



          > names(r)
          [1] "Foo"
          > names(r*r)
          [1] "layer"


          Even simple functions of one raster can change layer names:



          > names(r)
          [1] "Foo"
          > names(sqrt(r))
          [1] "layer"


          I think the best advice is to treat layer names as fragile and reset them when you need them, copying them from source rasters at the start of a processing step.



          I'm not sure there's always a sensible default when doing arithmetic - suppose you are doing operations on more than one raster, which one do you use? Simpler to let the user decide. The setNames function comes in very handy here:



          Two rasters with differing names:



          > names(r)
          [1] "Foo"
          > names(q)
          [1] "Bar"


          When multiplied, returns neither:



          > names(r*q)
          [1] "layer"


          Wrap in setNames and get a raster:



          > rq = setNames(r*q, names(q))
          > rq2 = setNames(r*q, names(r))


          With whichever names you ask for:



          > names(rq)
          [1] "Bar"
          > names(rq2)
          [1] "Foo"
          >


          a = setNames(b, n) is essentially the same as a = b; names(a)=n; return(a)






          share|improve this answer

























          • Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

            – Camilo Erasso
            Apr 3 at 18:52











          • I think setNames does the job nice enough - see edit.

            – Spacedman
            Apr 3 at 19:01











          • It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

            – Camilo Erasso
            Apr 3 at 19:23















          1














          There's no mention of what happens with layer names in the documentation for calc so I suspect the answer is "just because". If you rely on layer names in your code then you should probably explicitly set them any time you think they might change.



          Note that arithmetic can change layer names - even though both operands here have the same name, the output is different:



          > names(r)
          [1] "Foo"
          > names(r*r)
          [1] "layer"


          Even simple functions of one raster can change layer names:



          > names(r)
          [1] "Foo"
          > names(sqrt(r))
          [1] "layer"


          I think the best advice is to treat layer names as fragile and reset them when you need them, copying them from source rasters at the start of a processing step.



          I'm not sure there's always a sensible default when doing arithmetic - suppose you are doing operations on more than one raster, which one do you use? Simpler to let the user decide. The setNames function comes in very handy here:



          Two rasters with differing names:



          > names(r)
          [1] "Foo"
          > names(q)
          [1] "Bar"


          When multiplied, returns neither:



          > names(r*q)
          [1] "layer"


          Wrap in setNames and get a raster:



          > rq = setNames(r*q, names(q))
          > rq2 = setNames(r*q, names(r))


          With whichever names you ask for:



          > names(rq)
          [1] "Bar"
          > names(rq2)
          [1] "Foo"
          >


          a = setNames(b, n) is essentially the same as a = b; names(a)=n; return(a)






          share|improve this answer

























          • Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

            – Camilo Erasso
            Apr 3 at 18:52











          • I think setNames does the job nice enough - see edit.

            – Spacedman
            Apr 3 at 19:01











          • It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

            – Camilo Erasso
            Apr 3 at 19:23













          1












          1








          1







          There's no mention of what happens with layer names in the documentation for calc so I suspect the answer is "just because". If you rely on layer names in your code then you should probably explicitly set them any time you think they might change.



          Note that arithmetic can change layer names - even though both operands here have the same name, the output is different:



          > names(r)
          [1] "Foo"
          > names(r*r)
          [1] "layer"


          Even simple functions of one raster can change layer names:



          > names(r)
          [1] "Foo"
          > names(sqrt(r))
          [1] "layer"


          I think the best advice is to treat layer names as fragile and reset them when you need them, copying them from source rasters at the start of a processing step.



          I'm not sure there's always a sensible default when doing arithmetic - suppose you are doing operations on more than one raster, which one do you use? Simpler to let the user decide. The setNames function comes in very handy here:



          Two rasters with differing names:



          > names(r)
          [1] "Foo"
          > names(q)
          [1] "Bar"


          When multiplied, returns neither:



          > names(r*q)
          [1] "layer"


          Wrap in setNames and get a raster:



          > rq = setNames(r*q, names(q))
          > rq2 = setNames(r*q, names(r))


          With whichever names you ask for:



          > names(rq)
          [1] "Bar"
          > names(rq2)
          [1] "Foo"
          >


          a = setNames(b, n) is essentially the same as a = b; names(a)=n; return(a)






          share|improve this answer















          There's no mention of what happens with layer names in the documentation for calc so I suspect the answer is "just because". If you rely on layer names in your code then you should probably explicitly set them any time you think they might change.



          Note that arithmetic can change layer names - even though both operands here have the same name, the output is different:



          > names(r)
          [1] "Foo"
          > names(r*r)
          [1] "layer"


          Even simple functions of one raster can change layer names:



          > names(r)
          [1] "Foo"
          > names(sqrt(r))
          [1] "layer"


          I think the best advice is to treat layer names as fragile and reset them when you need them, copying them from source rasters at the start of a processing step.



          I'm not sure there's always a sensible default when doing arithmetic - suppose you are doing operations on more than one raster, which one do you use? Simpler to let the user decide. The setNames function comes in very handy here:



          Two rasters with differing names:



          > names(r)
          [1] "Foo"
          > names(q)
          [1] "Bar"


          When multiplied, returns neither:



          > names(r*q)
          [1] "layer"


          Wrap in setNames and get a raster:



          > rq = setNames(r*q, names(q))
          > rq2 = setNames(r*q, names(r))


          With whichever names you ask for:



          > names(rq)
          [1] "Bar"
          > names(rq2)
          [1] "Foo"
          >


          a = setNames(b, n) is essentially the same as a = b; names(a)=n; return(a)







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Apr 3 at 19:00

























          answered Apr 3 at 7:09









          SpacedmanSpacedman

          24.8k23551




          24.8k23551












          • Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

            – Camilo Erasso
            Apr 3 at 18:52











          • I think setNames does the job nice enough - see edit.

            – Spacedman
            Apr 3 at 19:01











          • It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

            – Camilo Erasso
            Apr 3 at 19:23

















          • Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

            – Camilo Erasso
            Apr 3 at 18:52











          • I think setNames does the job nice enough - see edit.

            – Spacedman
            Apr 3 at 19:01











          • It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

            – Camilo Erasso
            Apr 3 at 19:23
















          Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

          – Camilo Erasso
          Apr 3 at 18:52





          Don't you think that this would be a nice option in this function to be filed as an issue on the github site of the raster package? I will do it just in case and wait for his answer. In the meantime I will follow your suggestion. Thank you for your help!

          – Camilo Erasso
          Apr 3 at 18:52













          I think setNames does the job nice enough - see edit.

          – Spacedman
          Apr 3 at 19:01





          I think setNames does the job nice enough - see edit.

          – Spacedman
          Apr 3 at 19:01













          It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

          – Camilo Erasso
          Apr 3 at 19:23





          It does. I received a quick answer on github.com/rspatial/raster/issues/50. It is so by desig: github.com/rspatial/raster/issues/42

          – Camilo Erasso
          Apr 3 at 19:23










          Camilo Erasso is a new contributor. Be nice, and check out our Code of Conduct.









          draft saved

          draft discarded


















          Camilo Erasso is a new contributor. Be nice, and check out our Code of Conduct.












          Camilo Erasso is a new contributor. Be nice, and check out our Code of Conduct.











          Camilo Erasso is a new contributor. Be nice, and check out our Code of Conduct.














          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%2f317591%2fwhy-raster-layer-name-change-to-default-when-using-rastercalc-function%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

          Magento 1.9 observer on only new product added ( no updated product )Admin Create New Order ObserverObserver checkout_cart_product_add_after get product quantity in cartHow can I differentiate between product creation and saving existing products?How to get the original price Product SaveBeforeMagento Observer for Admin Sales order Address updateHow do i get quantity in a product_save_after event observer magento2?Using observer event to get updated customer infoSave product observer - detect availabilityEvent not triggered when new product added in admin : Magento 2magento 1.9 observer on quantity product change

          Does an object always see its latest internal state irrespective of thread? The 2019 Stack Overflow Developer Survey Results Are InDoes a finally block always get executed in Java?Java: serial thread confinement questionJava difference between fixed threadpool and scheduled threadpoolJackrabbit and concurrent modificationHow to stop a Runnable scheduled for repeated execution after a certain number of executionsMultiple threads accessing inner classHow can a loop be completed by two thread? say loop from count=1 to count=4 by ist thread and count =5 to 8 by 2nd thread?If I keep a reference to a Runnable, when does the Thread it ran on get released?How to stop a schedule ScheduledExecutorServiceHow to implement a singleThreadedScheduledExcecutor in wildfly

          Adding contour labels to SpatialLinesDataFrame or sf object? The Next CEO of Stack OverflowTearing of SpatialLinesDataFrame and problem with gClip functionAutomatically adjusting map labelsExtracting data.frame from simple features object in RR convert sf object back to SpatialPolygonsDataFrameSimplify polygons of sf objectlines of a SpatialLinesDataFrame corresponding to pointsCropping sf object in R?Pattern matching with grepl on SpatialPolygonsDataFrame object in RHow to create and empty SpatialLinesDataFrame in RWarning message in raster::rotate(): “this does not look like an appropriate object for this function”