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;
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
New contributor
add a comment |
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
New contributor
add a comment |
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
New contributor
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
raster r
New contributor
New contributor
edited Apr 3 at 7:52
Sara Belzak
52
52
New contributor
asked Apr 3 at 5:36
Camilo ErassoCamilo Erasso
32
32
New contributor
New contributor
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
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)
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 thinksetNames
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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)
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 thinksetNames
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
add a comment |
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)
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 thinksetNames
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
add a comment |
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)
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)
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 thinksetNames
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
add a comment |
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 thinksetNames
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
add a comment |
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.
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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