function [np,gam] = georges(data,fileout)

% ETAPE DE L'INTERPOLATION OBJECTIVE SUR LE GEORGES BANK
%
% 1- KStest -> calks.m transformation log10 si non-normale
% 2- Ajuster un plan -> enlever la moyenne de l'échantillon
% 3- Semi-variogramme -> calvario.m 
% 4- Ajuster un fonction continue au semi-variogramme -> fitvario.m
% 5- Krigeage -> calkri.m
% 6- Ajout du plan à la grille
% 7- Transformation inverse de 1-
% 8- Tracer le contour (étape réalisée dans caltrace.m)
%
% Input:  data -> colonne 1: no de station
%	       -> colonne 2: échantillon
%	  titre -> titre du graphique de données data interpolées
%	  fileout -> nom du fichier contenant les données interpolées

disp ('Étape 1: Kolmogorov-Smirnov test')
%----------------------------------------
% a) Enlève les nan si présent dans l'échantillon

  n  = isnan(data(:,2));
  nn = find(n == 0);
  data  = data (nn,:);

% b) kstest

  [ni,b0,b1] = calks (data(:,2));

% c) transfomation log10 si nécessaire

  if ni == 1
     data(:,2) = b1*data(:,2)+b0;		% translation nécessaire pour éviter la présence de 0 
     data(:,2) = log10(data(:,2));
  end

disp ('Étape 2: Ajustement d''un plan')
% ------------------------------------
% a) Enlève la moyenne de l'échantillon

  meandat = mean(data(:,2));
  dat = [data(:,1) data(:,2) - meandat];

disp ('Étape 3: Semi-variogramme')
% --------------------------------
% a) Position des stations (UTM, zéro: -67.8) 
  
  load stn		% no station, longitude (m), latitude (m)
  stn(:,1);
  dat(:,1);
  x = stn (dat(:,1),2);	% Position EST de dat
  y = stn (dat(:,1),3); % Position NORD de dat
  z = dat(:,2);

% b) Calcul du semi-variogramme

  [np,gam] = calvario (x./1000,y./1000,z);	% coordonnées en km
  l = length(np);
  np = np(2:l,:);
  gam = gam(2:l,:);
  i = find(np(:,2) > 20);
  np = np(i,1:2);
  gam = gam(i,1:2);

disp ('Étape 4: Ajustement d''une fonction au semi-variogramme ')
% --------------------------------------------------------------
% a) Trace le semi-variogramme
  
  figure
  fitvario (2,gam,50)
  load fit
  close
 
disp ('Étape 5: Création de la grille régulière par krigeage')
% ------------------------------------------------------------
% a) Grille

  [x0, nx, ny] = kregrid (-150,25,200,4450,25,4700);
  xi = (-150:25:200);		% Position x à interpoler en km
  yi = (4450:25:4700);		% Position y à interpoler en km

% b) Krigeage

  [zik,szi] = calkri([x(:)./1000 y(:)./1000 z(:)],x0,nx,ny,2,a,0,c);

disp ('Étape 6: Ajoute le plan soustrait en 2')
% ---------------------------------------------
% a) Ajoute la moyenne

  zik = zik + meandat;

disp ('Étape 7: Inverse de la transformation en 1 si nécessaire')
% ---------------------------------------------------------------
% a) Tranformation log10

  if ni == 1
	zi = (10.^zik - b0)/b1; 
  else 
	zi = zik;
  end

% Sauve les données dans un fichier (fileout)

  eval (['save ' fileout ' xi yi zi x y b0 b1'])