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

          រឿង រ៉ូមេអូ និង ហ្ស៊ុយលីយេ សង្ខេបរឿង តួអង្គ បញ្ជីណែនាំ

          QGIS export composer to PDF scale the map [closed] Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Print Composer QGIS 2.6, how to export image?QGIS 2.8.1 print composer won't export all OpenCycleMap base layer tilesSave Print/Map QGIS composer view as PNG/PDF using Python (without changing anything in visible layout)?Export QGIS Print Composer PDF with searchable text labelsQGIS Print Composer does not change from landscape to portrait orientation?How can I avoid map size and scale changes in print composer?Fuzzy PDF export in QGIS running on macSierra OSExport the legend into its 100% size using Print ComposerScale-dependent rendering in QGIS PDF output

          PDF-ში გადმოწერა სანავიგაციო მენიუproject page