Glad that it does work now.

But considering it is a marine species, I'm not sure what you want to do with data2enfa. This function returns 1) a data frame with the value for each pixel (that you can get directly with kasc2df) and 2) a vector of presence ($pr) which gives the number of localisations in each pixel of the map (i.e. not NA). For a perfect marine species, it should give you only 0s.

Now in your case, you get 99 localisations (on a total of 212) on the ground... Maybe that's a normal behaviour for this species, or maybe it's a problem of location error, but that's what made me think about what you exactly want to do.

Cheers,
Mathieu.


Consuelo Hermosilla a écrit :
Hello Mathieu,

I cannot believe it!! I have tried adding the names, with less layers, and it didn't work either, so I guessed that was not the problem. I guess I have others problems too. But now it does work! I'm amazed. I'm sorry you lost so much time. I deeply thank you.

Yes. the second and third columns were the coordinates, I apologize, I thought I sent you a file with the coordinates only. And about falling into the water, they must do that! it's a marine species.

Thank you very very much Mathieu,

Consuelo

-------------
Consuelo Hermosilla
PhD student
Departamento de Ecología y Biología Animal
Departamento de Bioquímica, Genética e Inmunología, Área de Genética
Facultad de Ciencias del Mar
Campus de As Lagoas-Marcosende
Universidad de Vigo
36310 Vigo
SPAIN
Mobile: +34 692 633 298

oooO
(     ) Oooo
   (   (     )
  _)    )  /
        (_/

Stop Gaza Massacre


On Wed, Apr 28, 2010 at 5:11 AM, Mathieu Basille <basi...@biomserv.univ-lyon1.fr <mailto:basi...@biomserv.univ-lyon1.fr>> wrote:

    Wow, this one gave me a real hard time, especially considering how
    easy the solution was.

    In brief, you have to specify names in the list, in the as.kasc
    function. Otherwise, none of the layers have actually names, which
    induces a lot of problems afterwards.

    The fix is quite easy then. I took also some the liberty to clean
    the code at different places:

    library(adehabitat)

    chl <- import.asc("chl-box_qt.asc")
    sst <- import.asc("sst-box_QT.asc")
    dep <- import.asc("dep-box_QT.asc")
    euph <- import.asc("euph-box_QT.asc")
    OX0 <- import.asc("OX0-box_QT.asc")
    OX200 <- import.asc("OX200-box_QT.asc")
    OX50 <- import.asc("OX50-box_QT.asc")
    P0 <- import.asc("P0-box_QT.asc")
    P100 <- import.asc("P100-box_QT.asc")
    P125 <- import.asc("P125-box_QT.asc")
    P150 <- import.asc("P150-box_QT.asc")
    P200 <- import.asc("P200-box_QT.asc")
    pre <- import.asc("pre-box_QT.asc")

    # The problem was here:
    env_maps <- as.kasc(list(chl = chl, sst = sst, dep = dep, euph =
    euph, OX0 = OX0, OX200 = OX200, OX50 = OX50, P0 = P0, P100 = P100,
    P125 = P125, P150 = P150, P200 = P200, pre = pre))

    # You forgot to save the output of this, but in your case, that was not
    # a problem
    env_maps <- managNAkasc(env_maps)  # just to check

    presence <- read.csv("presence5.csv")
    # I assumed that the second and third columns give X-Y coordinates. But
    # it is somehow weird since many of them fall in the water -- assuming
    # it's islands and water
    octopus.hab <- data2enfa(env_maps, presence[, 2:3])


    pca.octopus <- dudi.pca(octopus.hab$tab, scannf = FALSE)


    Hope this helps,

    Cheers,
    Mathieu.


    Consuelo Hermosilla a écrit :

        Dear Mathieu,


        Thanks for your quick reply!!! :)

        I thought that too, but then, why I'm able to plot the imported
        map? It makes no sense, I wouldn't be able to plot it if there
        was an error there, would I?

        This was my code:

        library(adehabitat)

        chl= import.asc("chl-box_qt.asc", type ="numeric")
        sst = import.asc("sst-box_QT.asc", type ="numeric")
        dep = import.asc("dep-box_QT.asc", type ="numeric")
        euph = import.asc("euph-box_QT.asc", type ="numeric")
        OX0 = import.asc("OX0-box_QT.asc", type ="numeric")
        OX200 = import.asc("OX200-box_QT.asc", type ="numeric")
        OX50 = import.asc("OX50-box_QT.asc", type ="numeric")
        P0 = import.asc("P0-box_QT.asc", type ="numeric")
        P100 = import.asc("P100-box_QT.asc", type ="numeric")
        P125 = import.asc("P125-box_QT.asc", type ="numeric")
        P150 = import.asc("P150-box_QT.asc", type ="numeric")
        P200 = import.asc("P200-box_QT.asc", type ="numeric")
        pre = import.asc("pre-box_QT.asc", type ="numeric")

        env_maps = as.kasc(list(chl, sst, dep, euph, OX0, OX200, OX50,
        P0, P100, P125, P150, P200, pre))

        managNAkasc (env_maps)  # just to check
        presence <- read.csv("presence.csv")
        octopus.hab <- data2enfa(env_maps, presence)
        pca.octopus <- dudi.pca(octopus.hab$tab, scannf=FALSE)

        Can I attach files? How do you want me to provide data?

        Consuelo

        -------------
        Consuelo Hermosilla
        PhD student
        Departamento de Ecología y Biología Animal
        Departamento de Bioquímica, Genética e Inmunología, Área de Genética
        Facultad de Ciencias del Mar
        Campus de As Lagoas-Marcosende
        Universidad de Vigo
        36310 Vigo
        SPAIN
        Mobile: +34 692 633 298

        oooO
        (     ) Oooo
          (   (     )
         _)    )  /
               (_/

        Stop Gaza Massacre


        On Tue, Apr 27, 2010 at 11:31 PM, Mathieu Basille
        <basi...@biomserv.univ-lyon1.fr
        <mailto:basi...@biomserv.univ-lyon1.fr>
        <mailto:basi...@biomserv.univ-lyon1.fr
        <mailto:basi...@biomserv.univ-lyon1.fr>>> wrote:

           Dear Consuelo,

           I guess the error just propagates from the initial import,
        and has
           nothing to do with dudi.pca (which is by the way from the ade4
           package -- not directly related to adehabitat).

           Your approach otherwise seems (quite) OK. Unfortunately, you
        didn't
           provide enough details to check. Could you provide the whole
        code,
           with possibly some data, so that we can reproduce the problem?

           Cheers,
           Mathieu.



           Consuelo Hermosilla a écrit :

               Hi folks,

               I'm trying to implement an ecological niche factor
        analysis with
               octopus but
               I have some problems. I think it is related to the fact I
        have
               No-data
               values. Since it's a marine species, I have land areas
        where I
               have no-data
               values. Can I have grids with no-data values?

               The thing is I'm able to import the ascii grid (using
               import.asc) and I'm
               even able to plot it (and see the image), so I guessed I
        have no
               problems
               with the no-data values. If I checked the grid, I got this:

               str(chl)
                asc [1:1214, 1:761] NA NA NA NA NA NA NA NA NA NA ...
                - attr(*, "xll")= num -18.6
                - attr(*, "yll")= num 16.7
                - attr(*, "cellsize")= num 0.05
                - attr(*, "type")= chr "numeric"

               It looks wrong, but it's OK since my first values are
        indeed NA.
               In fact,
               besides the fact I'm able to plot it, I can calculate
        grid means
               and other
               stats, so I think the problem is not here. Then, when I
        grouped
               all the
               grids (with the as.kasc function), I got this:

               str(env_maps)
               Classes ?kasc? and 'data.frame':        923854 obs. of  13
               variables:
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                $ : num  NA NA NA NA NA NA NA NA NA NA ...
                - attr(*, "cellsize")= num 0.05
                - attr(*, "xll")= num -18.6
                - attr(*, "yll")= num 16.7
                - attr(*, "ncol")= int 1214
                - attr(*, "nrow")= int 761
                - attr(*, "type")= chr  "numeric" "numeric" "numeric"
        "numeric" ...

               Still looks wrong, but it shouldn't be. Then, I proceed
        with the
               data2enfa
               function, that seemed to work. But in the next step, when
        I was
               calculating
               the dudi.pca, it failed, with this error:

               Error in `rownames<-`(`*tmp*`, value = c("1", "2", "3", "4",
               "5", "6",  :
                attempt to set rownames on object with no dimensions

               I checked the data2enfa result and I got this:

               List of 4
                $ tab  :'data.frame':  923854 obs. of  0 variables
                $ pr   : int [1:923854] 0 0 0 0 0 0 0 0 0 0 ...
                $ index: int [1:923854] 1 2 3 4 5 6 7 8 9 10 ...
                $ attr :Class 'mapattr'  atomic [1:1] 0
                .. ..- attr(*, "xll")= num -18.6
                .. ..- attr(*, "yll")= num 16.7
                .. ..- attr(*, "cellsize")= num 0.05
                .. ..- attr(*, "nrow")= int 761
                .. ..- attr(*, "ncol")= int 1214
                - attr(*, "class")= chr "dataenfa"

               When I check the $tab, I got this:

               octopus.hab$tab
               data frame with 0 columns and 923854 rows*

               *And I have no idea of what's wrong.... any ideas? do you
               suggest anything?
               Why do I have 0 columns and 923854 rows? Is that
        possible? Can
               the data2enfa
               funcion deal with no-data values?

               I tried the magagNAkasc, but doesn't work...

               managNAkasc (env_maps)
               Raster map of class "kasc":
               Cell size:  0.05
               Number of rows:  761
               Number of columns:  1214

               Variables measured:
               1. : numeric
               Error in .subset2(x, i, exact = exact) :
                attempt to select less than one element

               I have tried in Windows Vista and Linux (both R 2.10.1 and
               adehabitat v
               1.83.

               I'd appreciate any help!!

               Thanks!!!

               Consuelo

                      [[alternative HTML version deleted]]

               _______________________________________________
               R-sig-Geo mailing list
               R-sig-Geo@stat.math.ethz.ch
        <mailto:R-sig-Geo@stat.math.ethz.ch>
        <mailto:R-sig-Geo@stat.math.ethz.ch
        <mailto:R-sig-Geo@stat.math.ethz.ch>>

               https://stat.ethz.ch/mailman/listinfo/r-sig-geo


           --
           ~$ whoami
           Mathieu Basille, Post-Doc

           ~$ locate
           Laboratoire d'Écologie Comportementale et de Conservation de
        la Faune
           + Centre d'Étude de la Forêt
           Département de Biologie
           Université Laval, Québec

           ~$ info
           http://ase-research.org/basille

           ~$ fortune
           ``If you can't win by reason, go for volume.''
           Calvin, by Bill Watterson.



--
    ~$ whoami
    Mathieu Basille, Post-Doc

    ~$ locate
    Laboratoire d'Écologie Comportementale et de Conservation de la Faune
    + Centre d'Étude de la Forêt
    Département de Biologie
    Université Laval, Québec

    ~$ info
    http://ase-research.org/basille

    ~$ fortune
    ``If you can't win by reason, go for volume.''
    Calvin, by Bill Watterson.



--

~$ whoami
Mathieu Basille, Post-Doc

~$ locate
Laboratoire d'Écologie Comportementale et de Conservation de la Faune
+ Centre d'Étude de la Forêt
Département de Biologie
Université Laval, Québec

~$ info
http://ase-research.org/basille

~$ fortune
``If you can't win by reason, go for volume.''
Calvin, by Bill Watterson.

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to