параметры, позволяющие точкам с большим весом на карте превосходить другие точки с меньшим весом

Какие есть хорошие идеи/варианты кригинга/интерполяции, которые позволят сильно взвешенным точкам накладываться на слабовзвешенные точки на построенной R-карте?

в штате коннектикут восемь округов. Я нашел центр тяжести и хочу построить уровни бедности в каждом из этих восьми округов. три округа очень населены (около 1 млн человек), а остальные пять округов малонаселены (около 100 000 человек). поскольку в трех густонаселенных округах проживает более 90% всего населения штата, я хотел бы, чтобы эти три густонаселенных округа полностью «подавили» карту и повлияли на другие точки за пределами округов.

функция Krig в пакете R fields имеет множество параметров, а также функции ковариации, которые можно вызывать, но я не уверен, с чего начать?

вот воспроизводимый код для быстрого создания карты с жесткими границами, а затем трех карт с разным весом. надеюсь, я смогу просто внести изменения в этот код, но, возможно, для этого потребуется что-то более сложное, например, пакет geoRglm? две из трех взвешенных карт выглядят почти одинаково, несмотря на то, что одна в 10 раз больше взвешенной, чем другая.

https://raw.githubusercontent.com/davidbrae/swmap/master/20141001%20how%20to%20modify%20the%20Krig%20function%20so%20a%20huge%20weight%20overshelms%20nearby%20points.R

Благодарность!!

карта Коннектикута с жесткими границами и названиями округов

пример взвешенной карты - Фэрфилд, Хартфорд и Нью-Хейвен должны превосходить все остальные округа


редактировать: вот пример изображения поведения, которое я хочу -

введите здесь описание изображения


person Anthony Damico    schedule 01.10.2014    source источник
comment
Не всегда административный центр округа будет центром населения в округе, но это было бы в случае округов Коннектикута. (Этот пример, закодированный вручную, показался этому бывшему жителю Коннекикута совершенно неправильным.) Города Хартфорд, Нью-Хейвен и Фэрфилд были бы лучшим центром.   -  person IRTFM    schedule 01.10.2014
comment
@BondedDust, конечно! я просто использую, чтобы получить правильный общий метод, прежде чем вычислить взвешенный по населению центр тяжести каждого округа на основе гораздо меньшей географии, такой как участки переписи;)   -  person Anthony Damico    schedule 01.10.2014
comment
Если вы используете что-то вроде ggplot, установите непрозрачность (альфа) точки на основе веса (или -weight).   -  person Ryan Hope    schedule 01.10.2014
comment
@RyanHope, спасибо! не могли бы вы привести пример в качестве ответа? обратите внимание, что мой пример взвешенной карты не похож на диаграмму рассеяния.   -  person Anthony Damico    schedule 01.10.2014
comment
Это потребует гораздо больше работы, но лично мне нравятся карты, границы которых (округа в вашем случае) физически искажены, чтобы отразить население или другие параметры.   -  person Carl Witthoft    schedule 01.10.2014
comment
@CarlWitthoft, видимо, есть пакет для создания картограмм: stackoverflow.com/a/9320567/3897439. Или вы можете использовать ScapeToad, как в этом посте (spatial.ly/2013/06/r_activity). ).   -  person Cotton.Rockwood    schedule 04.10.2014
comment
Предоставление немного больше информации о контексте и вашей цели может помочь. Создание сглаженной поверхности уровня бедности на основе центроидов округов не имеет особого смысла, если вы хотите представить реальный мир. Если вы все еще хотите использовать кригинг, вам может помочь вот это: resources.arcgis.com/en/help/main/10.1/index.html#/. Вероятно, вы захотите поиграть со значениями порога и самородка.   -  person Cotton.Rockwood    schedule 04.10.2014
comment
привет @Cotton.Rockwood, спасибо за подробный ответ! я согласен, что это может не иметь практического смысла для округов-центроидов. я использую только округа, чтобы сделать мой пример минимальным. в конечном итоге я надеюсь применить это к переписным участкам - и позволить густонаселенным переписать малонаселенные :)   -  person Anthony Damico    schedule 05.10.2014
comment
@AnthonyDamico, будь то в масштабе округа или переписи, я не думаю, что взвешивание имеет смысл ... если только вы не считаете, что оценки бедности по какой-то причине менее точны из-за более низкой плотности населения. Возможно, лучшим взвешивающим фактором была бы доля всего населения, охваченного переписью. Тогда это будет мерой репрезентативности переписи и, таким образом, вероятно, связано с точностью. Имеет ли это смысл?   -  person Cotton.Rockwood    schedule 05.10.2014
comment
@Cotton.Rockwood упс, еще раз извините за упрощение моего примера (и спасибо за вашу постоянную помощь) - в окончательном коде, который я надеюсь опубликовать, веса будут мерами точности, а не населения веса. (вероятно, инвертированная дисперсия, но еще не уверен), поэтому во многих случаях это так, как вы говорите: точки в сельской местности будут менее точными.   -  person Anthony Damico    schedule 05.10.2014
comment
Судя по вашему редактированию, вы хотите, чтобы более высокие взвешенные значения полностью подавляли меньшие. Однако я не думаю, что это когда-либо произойдет с кригингом, если только вы не установите порог и полностью не исключите низковзвешенные значения из вызова кригинга.   -  person Cotton.Rockwood    schedule 06.10.2014


Ответы (3)


отказ от ответственности. Я не являюсь экспертом по Кригингу. Кригинг сложен и требует хорошего понимания исходных данных, метода и цели для достижения правильного результата. Вы можете попытаться получить информацию от @whuber [на GIS Stack Exchange или связаться с ним через его веб-сайт (http://www.quantdec.com/quals/quals.htm)] или другому известному вам эксперту.

Тем не менее, если вы просто хотите добиться желаемого визуального эффекта и не используете это для какого-то статистического анализа, я думаю, что есть несколько относительно простых решений.


ИЗМЕНИТЬ:

Как вы заметили, хотя приведенные ниже предложения по использованию аргументов theta и smoothness выравнивают поверхность прогнозирования, они в равной степени применяются ко всем измерениям и, таким образом, не расширяют «сферу влияния» более густонаселенных округов по сравнению с менее густонаселенными. После дальнейшего рассмотрения я думаю, что есть два способа добиться этого: изменив функцию ковариации так, чтобы она зависела от плотности населения, или используя веса, как у вас. Ваш подход к взвешиванию, как я писал ниже, изменяет погрешность функции криггинга. То есть он обратно пропорционален дисперсии самородка.

введите здесь описание изображения

Как вы можете видеть на изображении вариограммы, самородок, по сути, представляет собой точку пересечения оси Y или ошибку между измерениями в одном и том же месте. Веса влияют на дисперсию самородков (сигма2) как сигма2/вес. Таким образом, большие веса означают меньшую ошибку на малых расстояниях. Однако это не меняет форму функции полудисперсии и не оказывает большого влияния на диапазон или порог.

Я думаю, что лучшим решением было бы, чтобы ваша ковариационная функция зависела от населения. однако я не уверен, как это сделать, и я не вижу никаких аргументов в пользу Krig для этого. Я попытался поиграть с определением собственной функции ковариации, как в примере Krig, но получил только ошибки.

Извините, я не мог больше помочь!

Еще один полезный ресурс для понимания криггинга: http://www.epa.gov/airtrends/specialstudies/dsisurfaces.pdf


Как я сказал в своем комментарии, значения порога и самородка, а также диапазон вариограммы — это то, что вы можете изменить, чтобы повлиять на сглаживание. Указав weights в вызове Krig, вы изменяете дисперсию ошибок измерения. То есть при обычном использовании ожидается, что веса будут пропорциональны точности значения измерения, так что более высокие веса представляют собой, по существу, более точные измерения. На самом деле это не так с вашими данными, но это может дать вам желаемый эффект.

Чтобы изменить способ интерполяции ваших данных, вы можете настроить два (и многие другие) параметра в простом вызове Krig, который вы используете: theta и smoothness. theta регулирует диапазон полудисперсии, а это означает, что измеренные точки, расположенные дальше, вносят больший вклад в оценки по мере увеличения theta. Ваш диапазон данных

range <- data.frame(lon=range(ct.data$lon),lat=range(ct.data$lat))
range[2,]-range[1,]
       lon       lat
2 1.383717 0.6300484

таким образом, ваши точки измерения различаются на ~ 1,4 градуса долготы и ~ 0,6 градуса широты. Таким образом, вы можете поиграть с указанием значения theta в этом диапазоне, чтобы увидеть, как это повлияет на ваш результат. В общем, большее theta приводит к большему сглаживанию, поскольку вы используете больше значений для каждого прогноза.

Krig.output.wt <- Krig( cbind(ct.data$lon,ct.data$lat) , ct.data$county.poverty.rate ,
                        weights=c( size , 1 , 1 , 1 , 1 , size , size , 1 ),Covariance="Matern", theta=.8)  
r <- interpolate(ras, Krig.output.wt)
r <- mask(r, ct.map)
plot(r, col=colRamp(100) ,axes=FALSE,legend=FALSE)
title(main="Theta = 0.8", outer = FALSE)
points(cbind(ct.data$lon,ct.data$lat))
text(ct.data$lon, ct.data$lat-0.05, ct.data$NAME, cex=0.5)

Дает:

введите здесь описание изображения

Krig.output.wt <- Krig( cbind(ct.data$lon,ct.data$lat) , ct.data$county.poverty.rate ,
                        weights=c( size , 1 , 1 , 1 , 1 , size , size , 1 ),Covariance="Matern", theta=1.6)  
r <- interpolate(ras, Krig.output.wt)
r <- mask(r, ct.map)
plot(r, col=colRamp(100) ,axes=FALSE,legend=FALSE)
title(main="Theta = 1.6", outer = FALSE)
points(cbind(ct.data$lon,ct.data$lat))
text(ct.data$lon, ct.data$lat-0.05, ct.data$NAME, cex=0.5)

Дает:

введите здесь описание изображения

Добавление аргумента smoothness изменит порядок функции, используемой для сглаживания ваших прогнозов. Значение по умолчанию равно 0,5, что приводит к полиному второго порядка.

Krig.output.wt <- Krig( cbind(ct.data$lon,ct.data$lat) , ct.data$county.poverty.rate ,
                        weights=c( size , 1 , 1 , 1 , 1 , size , size , 1 ),
                        Covariance="Matern", smoothness = 0.6)  
r <- interpolate(ras, Krig.output.wt)
r <- mask(r, ct.map)
plot(r, col=colRamp(100) ,axes=FALSE,legend=FALSE)
title(main="Theta unspecified; Smoothness = 0.6", outer = FALSE)
points(cbind(ct.data$lon,ct.data$lat))
text(ct.data$lon, ct.data$lat-0.05, ct.data$NAME, cex=0.5)

Дает:

введите здесь описание изображения

Это должно дать вам начало и некоторые варианты, но вы должны посмотреть руководство для fields. Он довольно хорошо написан и хорошо объясняет аргументы. Кроме того, если это каким-то образом количественные данные, я настоятельно рекомендую поговорить с кем-то, кто хорошо разбирается в пространственной статистике!

person Cotton.Rockwood    schedule 04.10.2014
comment
Благодарность! Я проверил их перед публикацией, они не решают проблему. после включения каждой из этих опций сравните size<-5 с size<-100 в моем воспроизводимом примере. ни один из этих вариантов не улучшает сравнение между size<-5 и size<-100. я ищу что-то, где тяжело взвешенная точка заметно вторгается в близлежащие легко взвешенные точки, но менее тяжело взвешенные точки не вторгаются так сильно. (извините за мой непрофессионализм) - person Anthony Damico; 05.10.2014
comment
@AnthonyDamico, насколько я понимаю, вы хотите, чтобы прогнозируемые значения при более низких измерениях населения были менее привязаны к фактическому измеренному значению? Это правильно? Если это так, взвешивание кажется правильным подходом. Однако он, вероятно, должен быть в том же масштабе, что и изменение интересующей вас переменной: уровень бедности. Поскольку уровень бедности колеблется от 5,8 до 11,4, я предполагаю, что указание весов выше этого значения не имеет значения. Однако, если вы масштабируете свою популяцию до этого диапазона, вам может повезти больше. Я добавлю немного больше в ответ, чтобы посмотреть, поможет ли это. - person Cotton.Rockwood; 05.10.2014
comment
спасибо за ваше редактирование, хлопок! по крайней мере, полезно знать, что то, что я пытаюсь сделать, на самом деле невозможно сделать с помощью одного только кригинга.. спасибо, что спас меня от потери уймы времени на неправильном пути ;) - person Anthony Damico; 06.10.2014

Кригинг — это не то, что вам нужно. (Это статистический метод для точной — не искаженной! — интерполяции данных. Он требует предварительного анализа данных, которых у вас недостаточно для этой цели, — и не может добиться желаемого искажения карты.)

Пример и ссылки на «кровотечение» предполагают рассмотрение анаморфа или картограммы области< /эм>. Это карта, которая будет увеличивать и уменьшать области полигонов округов, чтобы они отражали их относительное население, сохраняя при этом свои формы. Ссылка (на сайт SE GIS) объясняет и иллюстрирует эту идею. Хотя его ответы не очень удовлетворительны, поиск по этому сайту покажет некоторые эффективные решения.

person whuber    schedule 05.10.2014
comment
«позволяет» ли весовой аргумент модели больше отличаться от измерений с малым весом? Мне просто любопытно, верно ли мое понимание. - person Cotton.Rockwood; 06.10.2014
comment
@Cotton Если вы имеете в виду аргументы Krig в своем ответе, я не могу вам помочь, потому что я не могу найти какую-либо библиотеку R, которая включает функцию с таким именем. Какую библиотеку вы используете? Несмотря на это, взвешивание в любом интерполяторе (или, как правило, процедура статистического прогнозирования) не будет выполнять то, о чем, по-видимому, просит OP, что кажется более близким к чему-то вроде взвешенной оценки плотности ядра, чем к фактической интерполяции. - person whuber; 06.10.2014
comment
Я имею в виду Krig в пакете fields, который использует OP. Справочное руководство находится по адресу: cran.r-project.org/web/ пакеты/поля/поля.pdf. Я согласен, что это не приведет к желаемому результату, который он описал. - person Cotton.Rockwood; 06.10.2014
comment
спасибо за руководство! это имеет смысл для меня. я думаю, что картограммы области - это не то, что мне нужно, так как я не хочу, чтобы окончательная карта была каким-либо образом искажена. однако это дает мне несколько идей о том, в каком направлении двигаться с конечной целью надежный способ сделать это. Спасибо!!! - person Anthony Damico; 06.10.2014
comment
@Хлопок Спасибо! Аргумент весов используется для корректировки матриц кригинга, которые заполнены значениями ковариации. Ковариации в этой модели представляют собой суммы трех слагаемых: от процессов P и Z и ошибок измерения e. Веса, применимые только к e, будут высокими для точных измерений и низкими для неточных: веса пропорциональны обратной дисперсии ошибки измерения. ... дисперсия ek равна сигме**2/weights.k. В этом приложении использование обратных популяций в качестве весов имеет смысл, но оно не приведет к тому, что ищет ОП. - person whuber; 06.10.2014
comment
@AnthonyDamico, кажется, что карты по ссылке, которую вы упомянули выше, должны быть просто пространственно интерполированы и сглажены данными переписи (опроса). Из любопытства, почему вы хотите перегрузить некоторые точки так, чтобы это было возможно с весами? Кажется, что кригинг с весами, пропорциональными некоторой мере ошибки, даст вам хороший результат, особенно при использовании данных на уровне переписных участков. - person Cotton.Rockwood; 07.10.2014
comment
@Cotton.Rockwood, поэтому я пишу сообщение в блоге общего пользования (с кодом!) для asdfree.com. многие наборы данных обследований имеют географические идентификаторы, ни один из них не содержит данных на уровне переписных участков, а многие имеют неполные географические данные. многие похожи на cps, у которых < i>некоторые округа, но не все. поэтому в примере с Коннектикутом вы знаете три больших округа и среднее значение всех остальных округов. видите, как изолирован графство Личфилд? из опроса наша единственная информация о Личфилде - это среднее значение по всем пяти малонаселенным округам :) - person Anthony Damico; 07.10.2014
comment
@Cotton.Rockwood, если небольшая географическая область изолирована множеством огромных областей, единственное, что известно об этой небольшой области, может быть ее значение, уже суммированное с другими небольшими географическими областями. поэтому заставлять его центроид быть одним числом на самом деле, вероятно, неправильно. Кто прекрасно заметил, что кригинг не предназначен для искаженных данных, но многие результаты пространственно-прикладных обследований будут искажены из-за этой проблемы агрегации в сельской местности. я думаю, что я собираюсь двигаться вперед, игнорируя это, мы посмотрим, как они будут выглядеть .. :) - person Anthony Damico; 07.10.2014
comment
очень крутая работа! Хотя я понимаю вашу точку зрения и проблему, мне кажется, что кригинг с отягощениями имеет место. В конце концов, даже если точка данных для таких мест, как Личфилд, является средним значением для нескольких округов, это все же, вероятно, будет лучшей оценкой реальной стоимости, чем отсутствие данных вообще. Таким образом, когда вы включаете пространственные отношения, как при криггинге, при условии, что вы строите соответствующее количество ошибок для усредненных точек, вы должны получить разумную оценку. Кригинг часто не является точным оценщиком, поэтому в данных обстоятельствах он кажется подходящим подходом. - person Cotton.Rockwood; 07.10.2014
comment
...опять же, я не специалист, но мне кажется, что при соответствующих методах кригинга и некоторой оценке погрешности для усредненных точек должен получиться довольно неплохой продукт. - person Cotton.Rockwood; 07.10.2014
comment
@Cotton Меня беспокоят более простые проблемы. (1) Вопрос, похоже, не требует подгонки: он требует некоторого гиперболического представления данных. (Поскольку данные представляют собой средние значения или итоги в пределах четко определенных полигонов, их сильное влияние на карту в соседних полигонах не подходит.) (2) Методы кригинга нельзя применять с разумным уровнем достоверности, когда только восемь значения данных доступны. (3) Это особенно верно, когда были сделаны грубые приближения при расположении опор данных, а данные имеют переменные опоры. - person whuber; 07.10.2014
comment
whuber, я думаю, что мой вопрос к @Anthony Damico заключался в том, почему он ищет что-то иное, чем хорошее соответствие при использовании взвешенного кригинга на центроидах переписных участков (или даже округов) может показаться разумным подходом к относительно точному решению. Похоже, это должно быть то, что он ищет, основываясь на картах, которые он связал with-weighted-sur">выше - person Cotton.Rockwood; 09.10.2014

много интересных комментариев и приводит выше.

Я просмотрел обзор диалектов Гарварда, чтобы понять, что вы пытаетесь сделать в первую очередь. Надо сказать очень классные карты. И прежде чем я начну рассказывать о том, что у меня получилось... Я уже просматривал вашу работу по анализу опросов и научился нескольким приемам. Спасибо.

Итак, мой первый вывод довольно быстро состоял в том, что если вы хотите выполнить пространственное сглаживание посредством оценки плотности ядра, вам нужно мыслить в терминах моделей точечных процессов. Я уверен, что есть и другие пути, но я пошел именно туда.

Итак, что я делаю ниже, так это беру очень общую карту США и преобразовываю ее во что-то, что я могу использовать в качестве окна выборки. Затем я создаю случайные выборки точек в этом регионе, просто представьте, что это ваши центроиды. После того, как я прикреплю к этим точкам случайные значения и построю график.

Я просто хотел протестировать это концептуально, поэтому я не сделал дополнительных шагов, чтобы получить cbsa, а также извините за то, что не проектировал, но я думаю, что это основы. Да и сглаживание в изучении диалектов делается по всей стране. Я думаю. То есть автор не расслаивает свою процедуру сглаживания внутри полигонов....поэтому я просто добавил состояния в конце.

код:

library(sp)
    library(spatstat)
    library(RColorBrewer)
    library(maps)
    library(maptools)

    # grab us map from R maps package
    usMap <- map("usa")
    usIds <- usMap$names

    # convert to spatial polygons so this can be used as a windo below
    usMapPoly <- map2SpatialPolygons(usMap,IDs=usIds)

    # just select us with no islands
    usMapPoly <- usMapPoly[names(usMapPoly)=="main",]

    # create a random sample of points on which to smooth over within the map
    pts <- spsample(usMapPoly, n=250, type='random')

    # just for a quick check of the map and sampling locations
    plot(usMapPoly)
    points(pts)

    # create values associated with points, be sure to play aroud with
    # these after you get the map it's fun
    vals <-rnorm(250,100,25)
    valWeights <- vals/sum(vals)
    ptsCords <- data.frame(pts@coords)

    # create window for the point pattern object  (ppp) created below
    usWindow <- as.owin(usMapPoly)

    # create spatial point pattern object
    usPPP <- ppp(ptsCords$x,ptsCords$y,marks=vals,window=usWindow)

    # create colour ramp
    col <- colorRampPalette(brewer.pal(9,"Reds"))(20)

    # the plots, here is where the gausian kernal density estimation magic happens
    # if you want a continuous legend on one of the sides get rid of ribbon=FALSE
    # and be sure to play around with sigma
    plot(Smooth(usPPP,sigma=3,weights=valWeights),col=col,main=NA,ribbon=FALSE)
    map("state",add=TRUE,fill=FALSE)

пример без веса:

SmoothMap

пример с моими тривиальными весами

SmoothMap2

Очевидно, что между этим и вашей целью сделать этот тип карты воспроизводимым на различных уровнях пространственного агрегирования и выборочных данных, предстоит много работы, но удачи, это кажется классным проектом.

p.s. изначально я не использовал взвешивание, но я полагаю, что вы могли бы указать веса непосредственно в функции Smooth. Два примера карт выше.

person miles2know    schedule 09.10.2014
comment
привет, не могли бы вы отредактировать это, чтобы где-то использовались веса? Благодарность! - person Anthony Damico; 09.10.2014
comment
Конечно .. взгляните сейчас. Это довольно тривиальное взвешивание, но я думаю, вы могли бы просто взвесить данные прямо в функции Smooth. - person miles2know; 09.10.2014
comment
Если вы добавите дополнительные уровни цвета в палитру рампы, то есть от (...)(20) до (...)(100), карты будут выглядеть еще более непрерывными. очевидно. - person miles2know; 09.10.2014
comment
хорошо, я потратил много времени на это - веса все еще не работают. когда вы случайным образом выбираете точки в пределах географии, вы случайным образом выбираете взвешенные точки. я думаю, что можно использовать fields:::cover.design для сохранения весов, но я не знаю, как это сделать? случайная выборка, которая у вас есть, теперь сбрасывает все веса, которые пользователь имеет в начале. есть ли способ обойти это? Благодарность! - person Anthony Damico; 12.10.2014
comment
это имеет смысл, и я уверен, что есть способ обойти это. Я подумаю, но если я понимаю, что вы пытаетесь сделать... у вас нет случайных выборок точек. вы работаете с центроидами CBSA, верно? Поэтому, если у вас есть эти априори, они будут данными x, y, которые вы передаете в ppp(). Тогда ваши данные будут аргументом отметок для ppp(). Нет необходимости в какой-либо выборке. Я просто использовал его для создания набора произвольных точек в домене. Я не думал, что это может сбросить вес. во всяком случае, я еще немного подумаю, как я уже сказал. ваше здоровье. - person miles2know; 12.10.2014
comment
это другой вопрос, но если у вас есть идеи, я хотел бы услышать ваш совет .. спасибо! stackoverflow.com/questions/26476804/ - person Anthony Damico; 21.10.2014
comment
Привет Энтони. Когда объект ppp передается в plot(), он ищет метод построения графика с именем plot.im, который определен в пакете spatstat. Я готов сказать, что ggplot2 не имеет никакой диспетчеризации методов для объектов ppp. Поэтому я не думаю, что вы могли бы легко использовать gglot2 для создания графиков выше. Прежде чем вы бросили это на другой вопрос, я заметил, что вы начали думать о сетках. Я проверяю это сейчас на самом деле. - person miles2know; 21.10.2014
comment
просто любопытно... Почему вы хотите использовать ggplot для всего? Я точно отличный инструмент. Я не начал использовать его для визуализации, но у него действительно краткая логика, и он стал весьма полезным в некоторых моих рабочих процессах. Я попал в него после того, как получил plyr и dplyr за пояс. Кстати, проверьте пакет magrittr. Итак, в конце дня... Тот же вопрос. И если вам действительно нужен ggplot для всего, я бы начал думать о добавлении методов построения графиков в ggplot2. Код весь есть. Вы можете создать новый пакет, чтобы учесть все ваши идеи построения графиков. - person miles2know; 21.10.2014
comment
Кроме того... В моем первоначальном методе я заметил морщину, связанную с вашей точкой зрения о выборке выше. Когда я попытался проецировать карты выше, сглаживание было разрушено. Так что это определенно верное замечание. Карта по-прежнему отображалась с границами, но проецирование изменило сглаживание. Вот почему я ищу сглаживание сетки. - person miles2know; 21.10.2014