Microsoft KB Archive/101594
From BetaArchive Wiki
PRB: Ampersand Displays as Underscore in Popup
ID: Q101594
The information in this article applies to:
 - Microsoft FoxPro for Windows, versions 2.6 and 2.6a
After you create a popup from an array that has strings as elements, if a element has an ampersand (&) in the string's text, the ampersand displays as "_" (an underscore) instead of "&" in the selected item box of the popup. For example, if the array element was "TEST1 & TEST2", it would display in the selected item box as "TEST1 _TEST2" when selected.
This behavior is caused by a feature of Windows. In Windows, an ampersand indicates that the next character should be underlined; therefore, this behavior also occurs in FoxPro for Windows.
To display an ampersand in Windows, you have to use two ampersands (for example, && Text). However, this workaround cannot be used in FoxPro because a double ampersand indicates that the following text is a comment and FoxPro should ignore the rest of the line, which usually generates a syntax error.
The best resolution for this is not to use ampersands in popups, whether from arrays or lists. The reason for this is that the behavior of some of the workarounds is unreliable and unpredictable.
One workaround that could be acceptable for short popups is to create the popup from a list.
To do this, initialize a variable in the Setup code for each item that needs to contain an ampersand, and then put the variable in the prompt for the popup using macro substitution. For example, in the Setup code, place this line of code:
 myvar="TEST1 &"+"& TEST2"
And in the popup prompt's list, enter the variable preceeded by an ampersand(for macro substitution)
Items in the list that do not contain ampersands do not need to be placed in variables. The problem with this resolution is that the items on the list show two ampersands, not just one. But the display value just shows one. Both ampersands get stored to the popup's variable. There is not a good solution for this issue if the popup is from an array and some of the array elements contain text with ampersands. Changing these elements as above can be tried.
Steps to Reproduce Problem
1. From the File menu, choose New, select Screen, and then choose
2. After the Screen Builder is displayed, choose Layout from the
 Screen menu.
3. In the Screen Layout dialog box, select Code under Options, and
 then choose Screen Setup Code.
4. Enter the following screen Setup code:
 DIMENSION test(2)
 test(1)="TEST1 & TEST2"
 test(2)="TEST3 & TEST4"
5. Select the Popup tool from the toolbox and place a popup on the
6. In the Popup dialog box, select Array Popup and type "test"
 (without the quotation marks).
7. In the Variable box, type "x" (without the quotation marks), and
 then choose OK.
8. From the Program menu, choose Generate. 9. Save the changes as ZTEST.SCX.
10. After ZTEST.SPR has been generated, type the following command in
 the Command window:
 DO ztest.spr
11. Select TEST3 & TEST4 from the popup. Note that it displays as
 TEST3 _TEST4.
Additional reference words: FoxWin 2.60 2.0a KBCategory: kbprg kbprb KBSubcategory: FxprgMacrosub
Last Reviewed: November 17, 1997


Swoole\Coroutine\Http\Client->getBody()
Declaration
<?php
Swoole\Coroutine\Http\Client->getBody(): string|bool
Parameters
None
Return
A string which contains the HTTP body response from a request or false if something went wrong.
Description
Get the HTTP body content returned from the remote server from a request.
Example
Using a body method
<?php
use Swoole\Coroutine\HTTP\Client;
Co\run(function()
{
 $client = new Client('127.0.0.1', 80);
 $client->setHeaders([
 'Host' => "localhost",
 "User-Agent" => 'Chrome/49.0.2587.3',
 'Accept' => 'text/html,application/xhtml+xml,application/xml',
 'Accept-Encoding' => 'gzip',
 ]);
 $client->set(['timeout' => 1]);
 $client->get('/index.php');
 echo $client->getBody();
 $client->close();
});
Using the class body property
When performing a request like get() the body is automatically stored in the body class property, this allows us to access the contents directly.This property type is a string.
<?php
use Swoole\Coroutine\Http\Client;
Co\run(function()
{
 $client = new Client('_URL_', 443);
 $client->get('/get');
 // The body is automatically updated, we can access it directly
 echo $client->body;
 $client->close();
});


text:
Linux user group
A Linux User Group or Linux Users' Group (LUG) or GNU/Linux User Group (GLUG) is a private, generally non-profit or not-for-profit organization that provides support and/or education for Linux users, particularly for inexperienced users. The term commonly refers to local groups that meet in person, but is also used to refer to online support groups that may have members spread over a very wide area and which do not organize, or which are not based around, physical meetings. Many LUGs encompass FreeBSD and other free Unix-based operating systems.
Local LUGs
Local Linux User Groups meet (typically weekly to monthly) to provide support and/or arrange and host presentations for Linux users, particularly for inexperienced users. Given that Linux is not dominated by any specific corporate or institutional entity, LUG meetings typically encompass a broader range of topics than the meetings of other users' groups. Linux is predominantly user supported and some support is vastly easier via phone or in person than over e-mail or USENET. LUGs are still primarily focused on hobbyist users and professionals who are engaged in self-directed study.
SVLUG is among the oldest and largest LUGs. It was originally formed as a Special Interest Group for the Silicon Valley Computer Society, founded by Daniel Kionka to support Xenix and "low cost PC UNIX systems" (which later became focused on Linux as the dominant free implementation of Unix).
According to the Linux User Group HOWTO:
Computer user groups are not new. In fact, they were central to the personal computer's history: Microcomputers arose in large part to satisfy demand for affordable, personal access to computing resources from electronics, ham radio, and other hobbyist user groups. Giants like IBM eventually discovered the PC to be a good and profitable thing, but initial impetus came from the grassroots.
To give just one indication of how LUGs differ from traditional user groups: Traditional groups must closely monitor what software users redistribute at meetings. While illegal copying of restricted proprietary software certainly occurred, it was officially discouraged—for good reason. At LUG meetings, however, that entire mindset simply does not apply: Far from being forbidden, unrestricted copying of Linux should be among a LUG's primary goals. In fact, there is anecdotal evidence of traditional user groups having difficulty adapting to Linux's ability to be lawfully copied at will.
Typical activities
||This section's use of external links may not follow Wikipedia's policies or guidelines. (March 2012)|
LUGs typically meet once per month in facilities freely provided by universities, colleges, community centers, private corporations, or banquet rooms in restaurants. For example, the SVLUG of the Silicon Valley met for about 10 years in the back of a Carl's Jr. restaurant, and has met for the last several years in meeting rooms at Cisco Systems and, more recently, Symantec. Similarly, the BALUG (SF Bay Area LUG) has always met in a banquet room above the Four Seas Restaurant in San Francisco's Chinatown.
Most LUGs are free, requiring no monthly or annual dues. In many cases the participants are encouraged to patronize the hosts (esp. in restaurant meetings, by buying dinner).
Some LUGs are informal conferences or round table discussions; members simply sit around and chat about Linux related topics. Some provide formal presentations. For example Linus Torvalds has occasionally talked to SVLUG or BALUG (which are close to his former home in Silicon Valley), and Hans Reiser (creator of ReiserFS) presented his early design plans at an SVLUG meeting. Presenters might be anyone in the community with something interesting to say. Occasionally, corporations will sponsor or encourage their employees to speak at users' groups to promote their products. LUGs generally require that these presentations provide technically interesting content rather than overt sales pitches. Often, LUG meetings provide an opportunity for members and guests to make announcements, especially for jobs offered and/or wanted, pleas for assistance (free or professional consulting), and hardware for sale or to be given away "to a good home".
LUGs in close geographic location would get together to hold conferences and share knowledge among peers. Like in Central America, in 2009, the first Encuentro Centro Americano de Software Libre was held in Nicaragua. Where LUGs from the region, from Belize to Panama attended. Groups from other countries are also invited. In 2010, it was held in Punta Renas, Nicaragua; where there were members from the region, including from Germany and Mexico. In 2011, it will be held in El Salvador. These events usually take place in summer, as most of the LUG members are students.
Many LUGs also organize installfests (FreeBSD groups tend to refer to them as "installathons") which are opportunities for experienced Linux users to help others, especially novices with installation and configuration of Linux systems. Installfests may also have break out sessions for teaching new tips and tricks—performance tuning, security hardening, etc.
A few LUGs have developed projects of regional or even international stature. For example, the Uganda Linux User Group operates in 3 major cities and frequently coordinates national and international events which have featured guests as high-profile as Tim Berners-Lee. The Bellingham Linux Users Group (BLUG), in Bellingham, Washington, holds the annual Linuxfest Northwest, which attracts large numbers of participants from throughout the region, including Western Canada. Likewise, Bellevue Linux Users Group (BELUG), which meets in a bookstore in Bellevue, Washington, has developed The Linux Information Project (LINFO), a comprehensive online resource that receives hundreds of thousands of hits monthly from around the world.
LUGs sometimes are gifted with surplus books, back issues of Linux magazines, copies of CDs and other promotional items to give away to their members.
Other than these "official" LUG activities the meetings provide opportunities for users to socialize. Members often exchange e-mail addresses, URLs, and phone numbers and provide technical support or collaborate on study or development projects together. Some local LUGs share characteristics of online LUGs, meeting on IRC or hosting support mailing lists in addition to the physical meetings. LUGs may also have an online blog presence, an example is the OSU LUG or the Nottingham LUG whose Planet NottsLUG is an aggregation of various members' blogs.
LUGs can also be a natural place for local organizations to find Linux expertise. Professors for Unix classes at San Jose State University came to SVLUG in the early days of Linux to find guest lecturers for their classes; some LUGs provide computer help to schools and non-profit organizations, and perform other community outreach services.
An Installfest (a portmanteau of installation and festival) is an event, generally sponsored by a local Linux User Group, university or LAN party, at which people get together to do mass installations of computer operating systems or software, most often Linux and other open source software.
It is generally an advocacy and community-building event, where novices bring their computers along with their preferred operating system installation disks to the location of the installfest, and experienced users help them in getting started and troubleshooting problems. Sometimes a Linux distribution and informative flyers are given for free to the attendees. Some events ask for participants to bring power strips and network switches if available.
Installfests welcome all skill levels from complete novice to expert. An installfest will range from an informal get together to festivals involving music. The tone and scope of a specific event will depend on the organization sponsoring it. Writing in the BBC's Internet Blog in 2008, George Wright described a mini-installfest as being "as painless as [he]'d imagined" and "[with] a bit of luck, it can be straightforward".
The Ubuntu Global Jam includes installfests.
A Hackfest (a portmanteau of hack and festival) is an event, generally sponsored by a local Linux User Group, university or LAN party, at which people get together to demonstrate security issues or reverse engineer computer operating systems or software, most often Linux and other open source software.
Local LUGs celebrate Software Freedom Day by going out and promoting Free and Open Source Software (FOSS). Free Ubuntu CDs are given out along with brochures and any information about FOSS. This event is commonly held on the third Saturday of September.
Online LUGs
Not all online Linux support groups refer to themselves as "a LUG", and the use of the word is sometimes (as in the Linux User Group HOWTO) intended to specifically refer to groups of Linux users which organize regular meetings. However, the LUG indexes list groups with members over a large geographical area, and over time, organizations like the EU LUG, for Linux users throughout the European Union (as of 2005[update], apparently defunct) use the term LUG to refer to themselves.
Online LUGs use mailing lists, bulletin boards and IRC as their primary method of communication, with members meeting physically seldom or not at all. As with local LUGs, some groups are limited to technical discussions and others seek to form social bonds between Linux users by having "chat" or "off topic" forums.
Reasons for forming or joining an online LUG vary. Some members of online LUGs may be relatively isolated without a local LUG accessible or with only a few other Linux users in their area.
Women in Libre software communities
Some Linux users are dissatisfied with their local LUG for reasons that might include its size, insularity or atmosphere: the online group LinuxChix, which is a worldwide LUG and social group for women Linux users, was founded due to the perceived aggression and rud

source: HuggingFaceFW/fineweb-edu


text:
This was the warmest September of record at Kotzebue. The average temperature of 49.1°F (9.5°C) was nearly seven degrees above normal. The previous warmest September was in 1974, when the average temperature was 47.7°F (8.7°C)
The average temperature at the Anchorage Airport in September was 55.0F (12.8C). This is more than six degrees above normal and is easily the warmest September of record. The previous warmest September was in 1995, when the average temperature was 53.6 (12.0C). The low temperature for the month was only 40F (4C), the first time the temperature has failed to get into the 30s at any point in September.
Juneau Airport received only 2.28" (58mm) of rain in September. This is only 26 percent of normal and is the driest September of record. The previous driest was in 1965, when rainfall totaled just 2.34" (59mm) of rain. Climate observations have been made at the Juneau Airport since the early 1940s.
Sitka recorded just 3.55" (90mm) of rain in September. This is only 30% of normal and makes this the driest September of record at the Airport. The previous record low September rainfall was 3.94" (100mm) in 1986. Observations have been made at the Sitka Airport since the mid-1940s.
Following the second wettest August of record at Gulkana, September turned the tables, with 0.10" (2.5mm) precipitation during the month is the second lowest of record. The only drier September since 1943 was in 1969, when there was just 0.07" (1.8mm) precipitation.
The first week of August brought unusually warm weather to far southwest Alaska. Dutch Harbor reported a high of 79° (26°C) on August 6, and Cold Bay a record tying 73° (23°C) on August 5. Other unusual high temperatures in the Aleutians and Alaska Peninsula during this period included 76° (24°C) at Chignik, 69° (21°C) at Sand Point and 67° (19°C) at Adak.
Snow in the Brooks Range is not especially unusual in late August. Several inches fell in some areas on overnight on August 30-31, including an estimate 3" (7cm) at Toolik Lake near the Dalton Highway. At moderate elevations, the snow was largely melted away from late in the day of August 31.
Gulkana Airport was soaked with 4.31" (109mm) of rain in August. This is more than twice normal and is the second highest August rainfall in more than 75 years of climate observations. The only wetter August was in 1973, when 4.94" of rain fell.
Northway was soaked with 5.28" (134mm) of rain in August. This is more than three times the normal rainfall and is the second highest August total in more than 70 years of climate observations. The only wetter August was in 1944, when 6.42" (163mm) of rain fell. Climate observations have been made at Northway since the autumn of 1942.
Yakutat was soaked with 6.94" (176mm) of rain on August 6 and 7. While not a record, this was the greatest two-day rainfall in summer in more than a decade: August 23-24, 2005 there was 9.28" (236mm) of rain.
ACCAP is a NOAA Climate Program Office Climate & Societal Interactions RISA Program.
UA is an AA/EO employer and educational institution and prohibits illegal discrimination against any individual. Notice of Nondiscrimination

source: m-a-p/FineFineWeb


Study finds frequently checking text messages can mean fewer friends. What do you think? (with poll)
Richard Alleyne, LDT
A text message is sent on a mobile phone.
Constantly checking for messages is an addiction which like other drugs can ruin personal relationships, according to researchers.
The addiction can also prove extremely annoying to those around them.
He said that getting hooked on a mobile phone is similar to other addictions, such as compulsive buying.
The study is the first to investigate the role that materialism plays in mobile phone addiction. The researchers said that materialism affected many decisions made by consumers, including their choice and use of mobile phones.
They said the study was driven by a belief that because mobile phone use had become so common it was important to have a better understanding of what drove such technological addictions.
The study for the Journal of Behavioural Addictions used data from 191 business students and two universities, as mobiles are used by about 90 per cent of students for "more than just a utilitarian purpose", Dr Roberts said. The ability to access mobile phones at any time and their ever-expanding functions make their use or overuse more likely, it was found.
Dr Roberts said: "At first glance, one might have the tendency to dismiss such aberrant mobile phone use as merely youthful nonsense - a passing fad.
"But an emerging body of literature has given increasing credence to cell phone (mobile phone) addiction and similar behavioural addictions."
The addiction has even been given a slightly tongue-in-cheek name - nomophobia. The term was created by British researchers in 2008 to identify people who experience anxiety when without access to mobile technology.
A previous study showed that young people were so addicted to their mobile phones that it felt like they had lost a limb when they were without them.
The Daily Telegraph


text:
This is the second article in a series on publishing text in Hebrew and Yiddish for genealogy books. The first article looked at Finding Hebrew Fonts. This article looks at using those fonts to publish Hebrew, Yiddish or any Right-to-Left (RTL) language using Adboe InDesign, without having to buy the more expensive Adobe InDesign ME (which has extensive support for RTL languages).
The standard software for professional publishing these days is Adobe InDesign. When publishing genealogy books there are genealogy programs that can output formatted reports and books (such as the book output options of Heredis and GEDitCOM II mentioned on Tuesday), but if you want a fully customized book that can be published professionally (or through an online publisher/printer like lulu.com) either you or someone else who is helping you will likely need to use InDesign. InDesign itself is not cheap (about $650), but if you want to use RTL languages like Hebrew, Yiddish, or Arabic, it costs hundreds of dollars more for the ME (Middle East) version.
Why would you want to use RTL languages in a genealogy book? Some examples include transcribing Jewish gravestones which in many cases are at least partially (and frequently wholly) in Hebrew, and transcribing handwritten Yiddish letters. You could just put in a translation of the texts, but adding the original text, especially when the orginal may be hard to read, is a nice touch.
There are actually two InDesign add-ons you can buy that will enable RTL features in standard InDesign, ScribeDOOR from WinSoft International and World Tools from In-Tools. The cheapest solution is still $99. Again, perhaps too expensive, especially if it's not for a copy of InDesign you own. So what if you could use RTL langauges in InDesign without an expensive plug-in? Well it turns out you can, with a little trick I'm going to show you.
Keep in mind this trick won't add all the RTL features that the ME version of InDesign offers, but it will let you insert RTL text that will lay out properly. For short texts like gravestone transcriptions, or simple texts like letters, this is more than enough. If you want to format complicated things like forms and complex layouts, chances are you'll need to spend the extra money and get one of the other solutions.
Technically this has been possible since InDesign CS4, but I believe it may have required some scripting to make it work. I'm using CS6 and there is nothing you need to get it working other than following the steps below.
Open InDesign, and go to the Paragraph settings. You want to select the Adobe World-Ready Paragraph Composer:
|Step 1: Select the Adobe World-Ready Paragraph Composer|
This is what defines the type of text-box you create when using the Type Tool in InDesign.
Next, select the Type Tool:
|Step 2: Select the Type Tool, and create a text box|
and with the Type Tool selected, create a text box on the page.
|Step 3: Command/Control Click and select 'Fill with Placeholder Text' from menu|
|Step 4: Select Hebrew from the pop-up menu|
|Hebrew Placeholder Text in the text box|
Now you just delete the Hebrew text and your cursor will be on the right side of the text box, ready to enter any RTL text, whether Hebrew, Yiddish or Arabic.
|Empty Text Box in RTL mode ready for text entry|
You can change your font, size, whatever – and it will now all work in this text box. Use any number of Hebrew fonts, like those I mentioned in my recent article Finding Hebrew Fonts.
If you use this tip, let me know. If you're interested in hearing more about publishing genealogy books, let me know in the comments.

source: openbmb/Ultra-FineWeb


text:
Wheelchair racing is one of the most exciting disciplines in the Paralympics. And it's not just a wheel-based equivalent of Olympic racing: John D. Barrow, mathematician, cosmologist and prolific popular science writer, has spotted an important difference:
The Brazilian athlete Wendel Silva Soares in a 400m wheelchair race. Image: Marcello Casal.
The first international sports events for disabled athletes held in conjunction with an Olympic Games were in Rome in the summer of 1960. The term Paralympics was only coined four years later at the Tokyo Olympics. At first, wheelchair athletes used conventional heavy wheelchairs (7-18kg) and only contested events up to 200 metres. The first wheelchair-borne marathon competitor competed in the 1975 Boston Marathon. New races were organised and gradually purpose-built racing chairs appeared. By the 1980s they had become lightweight (4-10kg) and technically sophisticated. The first mile completed in under four minutes by a wheelchair athlete came in 1985 and the roster of Olympic events was considerably extended for both men and women. Intense competition has driven down records in the commonest events on the track and in the marathon, which now features in most top-flight big city races, like London and Boston.
It is very interesting to look at the trends in world record performances for able-bodied and para-athletes. They are both very well defined but quite different. Able-bodied athletes are faster up to about 400 metres but after that their average speed quickly falls behind the wheelchair performances.
The two tables below show the world record times for the Olympic running and wheelchair events, for both men and women, together with the average speed of the athlete in each case – this is just the distance covered divided by the time recorded. If you like to think of speeds in miles per hour rather than metres per second, then 10m/s corresponds to 22.4mph, so Haile Gebrsellasie cruises around the marathon course at about 12.7mph.
|Men's event||Record time||Speed m/s||Women's event||Record time||Speed m/s|
|800m||1m 40.91s||7.93||800m||1m 53.28s||7.06|
|1500m||3m 26.00s||7.28||1500m||3m 50.46s||6.51|
|5000m||12m 37.53s||6.60||5000m||14m 11.15s||5.87|
|10000m||26m 17.53s||6.34||10000m||29m 31.78s||5.64|
|Marathon||2hr 03m 02s||5.72||Marathon||2hr 15m 25s||5.19|
|Men's wheelchair |
|Record time||Speed m/s||Women's wheelchair |
|Record time||Speed m/s|
|800m||1m 31.12s||8.77||800m||1m 45.19s||7.61|
|1500m||2m 54.51s||8.56||1500m||3m 21.22s||7.45|
|5000m||9m 53.05s||8.43||5000m||11m 16.96s||7.39|
|10000m||19m 50.64s||8.40||10000m||24m 21.64s||6.84|
|Marathon||1hr 20m 14s||8.77||Marathon||1hr 38m 29s||7.14|
You would expect to find that the average speed of each record run falls as the distance of the event gets longer. For able-bodied running records the trend is remarkably well defined. In the graph below you can see the systematic trends for the men's and the women's events. The average speed,, in m/sec varies as a power of the distance,, in metres. In other words, is approximately equal to for some constants and Such a relationship is called a power law. The constant is not that important here as it is just a scaling factor. The interesting quantity is the exponent For men this is and for women it is So is proportional to for men and to for women.
Left: average speed versus distance for men. Right: average speed versus distance for women. The relationship between average speed and distance follows a power law.
The corresponding results for the average speed trends in the wheelchair events are strikingly different. If we don't pay too much attention to the 100m and 200m events because of the strong effect that getting started and building up speed has on the total time, we can see already from the table of average speeds that there is hardly any fall off of average speed with distance. The athlete's technique reaches the fastest turnover rate quite quickly and can maintain it over very long distances. This is reflected in the exponents in the power law being close to zero, so nearly remains constant as the distance varies. The exponent is for men and to for women.
For the wheelchair events the exponents in the power law are close to zero.
We can also see from the tables that the average speed achieved during the marathon record is higher than in the shorter distances like the 10000m, and even the 5000m. There are several reasons that contribute to this anomaly. The shorter distance records are set on the track and require the negotiation of two bends on each 400m circuit of the track. Able-bodied runners are not much affected by this but it more problematic for wheelchairs and also harder for them to overtake. This slows the wheelchair on the bends compared with the two straights. The marathon is raced over flat road courses with a minimum of twists and turns and is much better for wheelchair racing although in practice the courses are optimised for the able-bodied runners. Also, wheelchair marathons are more competitive and frequent than 10000m track races and the records are under far more pressure with larger fields of competitive entrants. The tactical nature of 10000m track races also often leads to slower times than in road races.
The unusually small variation of speed with distance also allows wheelchair athletes to be competitive over a far greater range of distances than able-bodied athletes. David Weir has won the London marathon wheelchair race on four occasions but also has Olympic medals for the 100m, 200m, 400m, 800m, 1500m and 5000m wheelchair events. No able-bodied athlete could ever hope to succeed in more than three of those events. Our average speed analysis shows why it is a possibility for para-athletes.
The fact that wheelchair racers have very similar speeds over the whole range of competitive distances from the sprints to the marathon opens up an exciting possibility for wheelchair athletics. We saw recently that some athletics promoters were very keen on the idea of Usain Bolt racing the new 800m world record holder David Rudisha over the intermediate distance of 400m. In fact, this would not be as interesting as it sounds because Bolt would win very easily, although if the distance was increased to 500m it could get interesting.
Such match ups don't work well for able-bodied athletes because of the significant differences in speed from one event to the ones on either side of it in distance. However, in wheelchair racing it would be possible to have a super championship featuring the champions and record holders from all the competitive distances over one (or two) intermediate distances.
A version of this article has appeared in Barrow's book 100 Essential Things You Didn't Know You Didn't Know About Sport.
|You can buy the book and help Plus at the same time by clicking on the link on the left to purchase from amazon.co.uk, and the link to the right to purchase from amazon.com. Plus will earn a small commission from your purchase.|


The Famous Denby Dale Pie From Yorkshire
Meat Pie
Getty Images
The village of Denby Dale nestles in the picturesque hills of West Yorkshire in Northern England. The town is famous for its monster meat and potato pies—they're even mentioned in the Guinness Book of World Records. These gigantic pies are usually baked to celebrate national special occasions and events. The first time is believed to have been in 1788 to celebrate the recovery of King George III from his mental illness.
The History of Denby Dale Pies
Ten pies have been made as part of nine pie festivals over the years—one of the festivals was ditched in 1887. The pie that was made for the millennium celebration in 2000 weighed a staggering 12 tonnes. That's in excess of 26,448 pounds—a tonne equals slightly more than 2,204 pounds. The pie was 40 feet long, 8 feet wide and 3 feet 8 inches deep. It contained three tonnes of beef and a tonne of potatoes, and it was wetted down by 22 gallons of John Smith's Best Bitter, which is brewed in Tadcaster in Yorkshire. The pie was so big it had to be transported to the Pie Field on a 70-foot wagon. As befitting a work of such magnificence, it was blessed by the Bishop of the nearby city of Wakefield.
Not all Denby Dale pies are of such magnitude. More approachable pies are made to the same authentic recipe. The business wavered at one point, but the company was rescued and bought out of receivership by a team led by food entrepreneur Andrew Hayes, preserving 17 jobs in the region. More recently, Denby Dale Pies engaged the services of renowned Yorkshire bard Ian McMillan to write a poem—renamed a piem—in honor of the Denby Dale Pie. The poem was released in time for National Pie Week in the UK. National Pie Week is a week-long celebration of British pies both sweet and savory.
If you prefer to read your poetry rather than listen to it at the link above, here's how McMillan's work goes:
It's pleasing to the nose
And delightful to the eye
Wait till you taste that Denby Dale pie!
It's a symphony of crust,
Taties, gravy and meat
A Denby Dale pie makes your life complete!
They've been making pies in Denby Dale
For centuries and more
They're as Yorkshire as puddings and good strong ale
You can smell 'em through the cottage door!
They've been eating pies in Denby Dale
Since King George was a youth!
Each massive pie could tell a tale
or a slice of historical truth!
're making them again
And the pie-maker's art
Is once more close to this town's heart!
So all those in favour
Stand and bellow Aye! Then have a taste of that there Denby Dale Pie!
For those who aren't familiar with Yorkshire Dialect, "taties" means potatoes, "'em" means them, and "'re" means they are.


Go Through This Blog Before Purchasing a Pulley Lagging Rubber Sheet!!
A pulley lagging rubber sheet is a special layer of material that is attached to the shell of a conveyor pulley.
One of the primary functions for which many people choose to buy a pulley lagging sheet is because it provides, what many consider to be the best protection to the shell of a conveyor pulley.
It does so by dispensing excess friction, damage due to friction, and also water.
Currently, as a result of the sudden increase in the demand, manufacturers have started producing different types of pulley lagging sheets.
However, the main 2 kinds are:
· Rubber lagging (including grooved rubber lagging)
· Ceramic lagging
Each of these three main variants of pulley lagging has different specifications and purposes for which they are used, and needless to say, they have a lot of purposes.
But before discussing them in detail, let's first have a quick look at the significance of these sheets!
What is the significance of this kind of rubber sheets?
Slippage of a conveyor belt, if and when it happens can cause severe damage to both the drive pulley and the belt as well.
Repairing of such damages is not only ridiculously expensive, but they also require a lot of time in order to become fully functional again.
Thus, a business organization can lose a huge chunk of cash mainly as a result of this downtime.
For, a conveyor belt to function properly, one has to make sure that they do not have any trace of dust or leakage along the sides of the conveyor belt (one of the main reasons why a conveyor belt skirting rubber is used).
Not only that, but you also have to be sure that the belt has a good enough traction along with the drive pulley so that no incident of slippage ever occurs.
However, the main thing that affects the life span of any conveyor system is whether or not it has been sufficiently equipped for the purpose for which it is intended to be used.
This is because they have to function under many inconvenient conditions, like sludge and rain, which might cause slippage as a result of the friction between the belt and pulleys.
But these mishaps can easily be avoided by using a pulley lagging rubber sheet which is usually produced using special rubber compounds and provides some of the best water shedding performance along with excellent prevention against material build-up.
Guess that removes all questions related to the significance of these rubber products!!
Now, let's come back to discussing the different types of rubber pulley lagging, shall we?
 1. Rubber Pulley Lagging
This is one of the most popular amongst all other pulley lagging.
This is mainly because they are made up of a softer material that offers outstanding traction and also gives excellent protection against wear and tear.
They also provide protection to the pulley shell, and the conveyor belt also experiences a higher rate of friction.
What are the advantages of using these products?
One of the most crucial advantages of using a rubber pulley is that that can be given any shape and grooved into any pattern that you want.
This option gives this pulley lagging sheet optimum flexibility as per the purpose for which you intend to use them.
Yet another advantage, from the view of the consumer, is that these sheets are extremely affordable so that anyone can purchase them.
Are there any drawbacks?
There is only challenge that these products seem unable to overcome, and that is the fact that they have a limited operational life and therefore, needs to be replaced on a regular basis.
 2. Ceramic pulley lagging
This one is also an extremely common type of pulley lagging and has seen a tremendous rise in popularity.
What are the advantages of using this product?
Ceramic is preferred by many because of the fact that it is more hard and resilient than rubber.
It is also highly durable and can, therefore, withstand harsh conditions and resist any kind of abrasive material.
They are generally available in two types – smooth or dimpled, and both of them offer increased friction, grip, reduction in slippage etc.
And what about the drawbacks?
Probably the only issue that plagues the mind of consumers is that ceramic itself is extremely brittle and fragile.
Not only that they are also highly prone to formation of cracks, especially if anything gets caught between the belt and lagging.
In Conclusion…
If you are really serious about providing the best protection for a conveyor belt, look no further than buying a quality pulley lagging sheet.


What Is The Cordless Combi Drill?
What is cordless combi drill?
A combi drill is a all purpose drill that can perform a variety of different functions and can also be referred to as a impact drill or hammer drill driver and usually the most expensive of these 3 options. … Higher drill speeds should be used when drilling into wood or metal.
What is the difference between a combi drill and a drill driver?
A drill driver will drive screws and drill holes into hard or soft wood and plastic, laminates, etc. A combi-drill will do all of these applications as well as drill into masonry, concrete and steel.
What is a combi power drill?
A Combi (Combination) drill is exactly what its name suggests – a combination of different modes, namely Screwdriver mode, Drilling Mode, and Hammer Drilling Mode.
Is a combi drill good?
The Black + Decker 18V combi drill is a great all-rounder for tackling a variety of household jobs, and is also tough enough to handle light masonry and metalwork, thanks to a 21,000 BPM hammer drilling speed (though for the most heavy-duty tasks, we'd recommend going with the DeWalt rotary hammer drill below).
Can you drill concrete with a combi drill?
As mentioned earlier in this article, some cordless drills will be equipped with both a standard drilling action and a hammer action (sometimes called "combi" drills). … Now, it is possible to drill into concrete without the hammer action on your drill.
See also 9 Best Cordless Drill For Home Diy
Can I use a combi drill as a screwdriver?
Can I Use My Drill as a Screwdriver? The short answer, absolutely. … You can not only use a cordless drill as a screwdriver, but if you're operating with a corded power drill, there are also options to utilize this tool to sink screws effectively.
Will a combi drill go through brick?
Combi drills offer all the same features as a drill driver, but with the additional hammer-action feature, making it suitable for drilling into masonry and brick too.
Is a combi drill better than an impact driver?
While the larger models can produce over 150 Nm, smaller impact drivers offer 100 Nm of torque which makes the impact driver a very powerful and highly functional tool. On the other hand, a combi drill offers only around 50 Nm – 60 Nm of torque. Compared to a combi drill, the impact driver produces 3 times more torque.
What is a DeWalt Combi drill?
DeWalt combi drills are designed to handle more than one function with ease. … With high maximum drill capacities in wood, metal and masonry, this tool can drill into a multitude of materials with ease. The variable speed control offers better management on a wide variety of applications.
What does Brushless Combi drill mean?
A drill with a brushless motor adjusts its speed, torque, and power supply to match the task at hand. It'll sense if you're driving screws into a light material like drywall or a dense material like mahogany, and use only enough power to accomplish the job.
What is a Makita combi drill?
Makita combi drills allow you to complete a variety of tasks with just one tool. Whether doing work in tight spaces or drilling holes into wood or masonry, ensuring you complete the job quickly and efficiently. Available in a range of battery sizes, measured in Ah.
See also How To Properly Use A Cordless Drill?
error: Content is protected !!


more efficient. The disadvantage of such approach is that global information has time delay so that the topology may be different from the time when past consensus was reached. We consider this to be acceptable as long as the valid path is unique or almost unique, and the valid path still exists and will be selected by honest nodes with nontrivial probability at the time of validation.
To validate a path, we validate if each node on the route is relaying the packet to its neighbor that is closest to the destination address, considering only nodes that appeared in the last X blocks, where X is configurable. To be more specific, at each hop, let the node NKN address be x, the virtual ring can be separated into m segments, where segment i contains nodes whose NKN address is between (x + 2^i) mod 2^m (inclusive) and (x + 2^(i+1)) mod 2^m (exclusive). If there are any nodes within segment i, then the node in segment i that is closest to x will be a neighbor of node x. Similarly, if the destination NKN address is located in segment i, then the node in segment i that is closest to x should be the next hop which x should send the packet to. In practice, each node validating the path will check:
 1. The next hop is indeed in segment i
 2. No node that appeared in the last X blocks is in segment i and is closer to x than the next hop.
A hop is valid if it satisfies these two conditions. A path is valid if every hop is valid. Since the validation only utilizes information in the signature chain and data in previous blocks, every node in the NKN that receives the signature chain and has previous blocks information will produce the same output, ensuring the consistency of validation.
A consequence of the above validation algorithm is that, if any hop in a path should select a node which appeared in the last X blocks but is now offline, then the actual hop will skip that node and select its immediate successor instead, make the path invalid. This cannot be avoided unless information other than previous blocks is used (e.g. ping the skipped node to see if it's indeed offline). We argue that this false negative is acceptable because it can be viewed as another random factor that rejects a portion of honest signature chain, similar to the role of the hash of the signature chain. The probability that an actual valid path is identified as valid can be computed as p = (1 — N_off / N)^l, where N_off is the number of nodes that appear in the last X blocks and then go offline when the packet is being relayed, N is the total number of nodes in the network, and l the length of the path. One can choose smaller X or making nodes more stable to reduce N_off and increase the validation rate.
Verifiable Random Function (VRF)
The signature in signature chain needs to satisfy the following conditions:
 1. Only the secret key holder can produce valid signature, no one else can compute valid signature of a message without knowing the secret key, even if knowing the valid signatures of other messages;
 2. The signature of any message should be unique, i.e. only one signature is valid for any message and key pair.
The first property (verifiability) guarantees the signature is indeed signed by the secret key holder, while the second property (uniqueness) prevents relayers from computing multiple signatures for the same message and choose the one that has largest advantage (e.g. smallest signature).
Although elliptic curved based digital signature algorithms (e.g. ECDSA) provide verifiability, they do not produce unique valid output for the same input message. A random nonce can be chosen freely to produce multiple valid signatures, and validator does not know or verify what nonce is chosen. Even in some deterministic versions of ECDSA where the random nonce is chosen deterministically (e.g. hash of the message), malicious node can still choose different nonce and produces multiple valid signatures for the same message, while the validator cannot know if the nonce is chosen in the specified way. In contrast, hash function provides uniqueness but not verifiability as anyone can compute the output.
We use verifiable random function (VRF) to compute the "signature" in signature chain as it provides both verifiability and uniqueness. In addition to the output (signature) of the message, it also produces a proof which is needed to verify the signature. Similar to signature algorithms, valid signature can only be computed if the secret key is known. Unlike ECDSA, only one signature is valid for any message in verifiable random function, although the proof may not be unique.
NKN Address Scheme
Nodes and clients have different scheme when choosing NKN address.
First, it is important that NKN address of a node is random (or at least uniformly distributed and uncontrollable) for two reasons.
1) It is hard for malicious nodes to choose specific NKN addresses. Being able to choose NKN address makes it easier for malicious nodes to attack the system as neighbors and routing are based on NKN addresses.
2) Load is more balanced among nodes given random NKN addresses, effectively making the network more decentralized.
To guarantee the randomness of NKN address and prevent malicious nodes from choosing specific NKN address, a unique, unpredictable, uncontrollable yet still verifiable function is used to generate NKN address when a node joins NKN. We choose the hash of public IP address and latest block hash at the time of node joining
Node NKN address = hash(Node public IP address, latest block hash)
 such that it's verifiable by other nodes but unpredictable in advance.
Second, clients have different NKN address scheme from nodes. The scheme should satisfy the following properties:
 1) Client NKN address is permanent such that a client can be reached from the same NKN address when in different physical network.
 2) Client NKN address is associated with its public key to avoid NKN address collision so that other clients cannot receive packets sending to it.
NKN chooses the scheme such that client NKN address is computed from a url-like NKN address string consisting of an arbitrary string chosen by the client and its public key
Client NKN address = hash("arbitrary-string.client-public-key")
 In the NKN address string, the last substring separated by a dot (client public key) represents the unique identity of the client, similar to root domain in a url; the rest is chosen by the client, similar to subdomain in a url. Such a scheme satisfies the above two properties. In addition, a user (key pair holder) can generate as many NKN addresses as he wants sharing the same account (key pair).
 Clients do not distribute their NKN addresses directly. Instead, a client distributes its NKN address string to nodes or other clients and they compute the client's NKN address locally such that they know both the client's NKN address and public key at the same time. Using such a scheme, end-to-end encryption between any clients is easy to implement.
Mining Economic Model
The total number of NKN tokens (nkn) is one billion. When the mainnet goes alive, the genesis block will generate 70% nkn. The remaining 30% will be produced by mining data transmission, and the annual output will decrease linearly within 25 years, as shown in Figure 7. The annual supply (in millions) of NKN tokens (Q) is distributed according to the time variable "T" and is excavated according to the following formula:
Because the total amount of NKN tokens is limited and mining production decreases linearly over time. This part of the mining mechanism for issuing tokens is to encourage the community to participate in the co-construction and sharing of the new Internet. The cost of NKN token is determined by the bid between the customer and the miner (similar to the Ethereum system fee); therefore, the market price change of the NKN token does not affect the equivalent price of the data transfer transaction or data transfer fee.
Figure 7 nkn annual mining amount supply curves versus time
Building an Ecosystem
The NKN ecosystem has three main goals:
 1. Ultra open. Any device can easily access NKN whenever and wherever.
 2. Share network resources. Participants receive rewards from the NKN system by sharing idle network resources with others.
 3. Building network facilities together. NKN encourages individuals and organizations to deploy devices to serve other nodes and benefit from automatic settlement while enhancing network connectivity and throughput.
Therefore, the NKN ecosystem has four main elements: network equipment/device, network infrastructure, Internet service providers, and decentralized applications, as shown in Figure 8.
Figure 8 NKN ecosystem elements and the value of NKN
In transforming traditional network infrastructure, NKN focuses on its own blockchain technology advantages and cooperation with traditional telecommunications and the Internet service providers. Recently, NKN joined the TIP (Telecom Infra Project) , a telecommunications alliance founded by Facebook, Deutsche Telekom, Intel, Telefonica, Nokia, Vodafone and BT. NKN will play a key role in the working groups such as Edge Computing Group, OpenCellular Group and TIP Community Labs. NKN's innovative economic incentive model combined with blockchain in the field of network transport will enable members of the TIP Alliance to embrace technology innovation more quickly and broadly.
In addition, NKN is also a member of the ONF(Open Networking Foundation). ONF is a non-profit organization of telecom industry giants such as AT&T, Google, Comcast, Deutsche Telekom, NTT and Turkey Telecom, which aims to introduce open source innovation into formal commercial deployment. One of the


++Mind vs Body in programming Is Dualism the future of programming? I like the RubyLanguage. Yet, I feel strange with the motto "In Ruby everything is an object". On the contrary I believe it is useful to pretend that some "things" are Objects and some other "things" are Values. Maybe I am not a Materialist. Let me explain. + Objects vs Values What is the difference between an Object and a Value? It's like the difference between material things and immaterial ideas. Objects must live in some body/place/container, whereas Values can live in multiple "minds" simultaneously. ++ Objects As I first read in a Grady Booch book a long long time ago, an Object has 3 main characteristics: # an *Identity*. A unique /identifier/ that makes it possible to "reference" a specific unique Object # a *State*, that can be represented using a *Value*. That state/value may or may not change over time # a *Behavior*, that defines how the Object will react when some "method" is invoked. Often the behavior depends on the "class" of the object (the "class" is part of the value). ++ Values Example of values include so called /primitive/ values like integers and floating point numbers, strings, dates. Some languages extend the notion to tables, lists, records, etc. But the notion of *value semantics* goes deeper, it relates to the idea that a value is an "in extenso" description of something (whereas a an object is that something itself). Values exist the way ideas exists, not the way a physical thing exist. Values are... # are *immutable*. They cannot change, they cannot "mutate". That means that the Value's value never changes! If string "ABC" is a value, then "ABD" is a different value. There is no way "ABC" can turn into "ABD". # are intrinsically *unique*. Integer 3 "exists" once only, there are no two integers 3, there never will. Values are neither created nor destroyed, they simply are, always have been and always will be. # are *self-identified*. Ie. the Value's identity is the Value itself. ++ An over simplification? Because Object Oriented languages use objects to represent values, they kind of hide the difference between Objects and Values. Everything becomes an Object. This is presented as an advantage. It is some kind of an "unification", a beautiful simplication. Well... really? Maybe it is an over simplification. I am asking because some of these languages later reintroduce the notion of "value semantics". Sometimes there are two "equality" operators. One for identity equality (are two object identifiers referencing the same object?). Another one for Value equality (are two objects representing the same value?). Some other times there will be a String class for example, and a MutableString class (or a StringBuffer/StringBuilder class maybe). As a result Values become second class citizen. They become a special case among all objects, the Immutable Object case. So, yes one can represent a value using an object, but the ideal/immaterial essence of the value gets lost. Why does this matter? + Only Values are multi-core friendly We are entering a time where parallel processing is becoming increasingly necessary to improve performances. That is why the distinction between Values and Objects is relevant. Values are friendly in a distributed non shared environment: # Values are light and fast. Values are naturaly cacheable. A value's computerized representation can be copied as much as one wants, there will never be a need to synchonize the copies. As a result accessing values is local, hence fast. # Mutable Objects are heavy and slow. Objects need a "home". That is the place where the object is stored. The place is not ubiquitous, it hosts the true and only Object. If there exists local cached proxies, they must be kept in synch with each others somehow, and this is costly. Functional programming, like in ErlangLanguage for example, is a nice thing. But pure functional programming, with no side effects, with only immutable values instead, is... a brutal paradigm shift, at best. Are we going to forget about Object Oriented Programming? I don't think so. ++ The Fertile Paradox of OO Languages Some languages have both "by value" and "by reference" parameter passing schemes. But "Pure" object oriented languages are expected to provide only one mechanism: a "by reference" parameter passing, where references are object identifiers. The difference between "by value" and "by reference" becomes of paramount importance when the caller and the callee live in two different address spaces, maybe on two different computers. Cannotical Object Oriented languages have only "by reference". But, but, at some implementation level they actually pass Values: Object Identifiers. ++ Object Identifiers are Values! That passed Value is the /id/ of an object, a /reference/ to it. That's an added level of indirection. Call it an Oid, a Pointer, call it a Reference, at the end it is a kind of Value (hence immutable, unique, self identified). But these languages deny the existence of such values, claiming that "everything is an object". Maybe "everything is an object" but then what is the reference to an object? Is it an object or a value? That is where there is a paradox: If everything is an object, then what kind of object is a "reference to an object"? The truth is that not everything is an object, because references to objects are not objects, they are Values. ++ Nice consequence As a consequence, a language claiming "In xxxx everything is an object" seems extreme to me. I want something in between, where there are Objects and Values, with a clear understanding about what these two species of data have to offer. That request is legitimate, because Values are not second class citizen. I bet I am not alone. Future languages will provide native support for Objects /and/ Values. Some possibilities include: * *Thing Oriented Programming* would be the Top. In such a programming orientation, Value is the norm and Object the exception, versus the opposite in Object Oriented Programming. * A *Value* base class and mixin. To make it super easy to create objects with value semantics. * An *value* method. It would freeze forever the value of an object, so that further processing can optimize things and treat the object as if it were a value, an immaterial idea versus an material thing. It is the _TAG_ Ruby method. There even exists an evil _TAG_ * A *incarn* method. That would create a *new* mutable object from an idealized value. Is it the _TAG_ Ruby method? * A *value?* method. That tells apart objects from values. Like Ruby _TAG_? maybe? Maybe, probably, some languages already offer these possibilites. I get to find them. ----- Ressources: * B. J. MacLennan. "Values and Objects in Programming Languages." ACM SIGPLAN Notices 17, 12 (December 1982). Page 70-79. * Values in Object systems at Ubilab -- Explains why Values are good. * * * Mutable or immutable? in * Objects and Values – A conceptual model, by Bruno Jouhier ----- + Solution Implementing value semantics in object oriented languages can be tricky. * What does Barbara Liskov have to say about Equality in Java? by Reg Braithwaite * Equals and Hash Code for **Java**, by Manish Hatwalne * Navigating the equality maze of **Ruby**, by Paul Butcher * Reference and value semantics. Part of **C++** FAQ Lite, Marshall Cline ----- Read/add comments Category AboutProgramming, JavaScript Misc. I am getting old. I apparently wrote about this in 2004, _USER_ - _USER_ - _USER_ - a visitor - _USER_ -
Your name maybe:
©2006-2014 Virteal


text:
Museum of the Cape Fear
The Museum of the Cape Fear in Fayetteville is the third regional branch of the North Carolina Museum of History and the only one that began as a branch museum. (The other two regional branches, the Museum of the Albemarle in Elizabeth City and the Gateway Museum in Old Fort, operated independently before coming under the Museum of History's umbrella.) The free-admission Museum of the Cape Fear opened in 1987 with funding assistance from the Historic Fayetteville Foundation and with Rodney Barfield as its first curator. It introduces visitors to the history and culture of southeastern North Carolina through exhibits, lectures, and workshops and, as part of its mission as a regional branch, offers expertise to the nonstate historical museums, sites, and agencies in its 20-county service area.
The museum features permanent exhibits on the history of the Piedmont and the lower North Carolina coast from early Native American settlements through the Civil War period. Exhibits on transportation in the region, Fayetteville history (including the devastating 1831 fire), and an 1890 potter's shop are of particular interest. Visitors and school groups are drawn to the temporary exhibit gallery, where changing exhibits have highlighted, among other subjects, African American women in the Cape Fear, traditional crafts of the region, and the region's archaeology. A meeting room provides space for programs, lectures, and films.
Angela Fracaro, "A Fast Start at Looking Back," The State 57 (June 1989).
Karen Rosalinde Zimmer, "An Audience Development Plan for the Museum of the Cape Fear in Fayetteville" (M.A. thesis, UNC-Chapel Hill, 1989).
Museum of the Cape Fear: _URL_
North Carolina Museum of History: _URL_
A promotional video for the Museum of the Cape Fear (Fayetteville, NC), courtesy of the Fayetteville Arts Council. Available from _URL_ (accessed August 24, 2012).
1 January 2006 | Patteson, Angelyn H.


2
Apologies in advance as I am not a GIS specialist by any means. I have a set of 1 million points and I'm trying to find their values in a geotiff raster. I've tried various versions of this answer involving affine transformations: _URL_
def retrieve_pixel_value(geo_coord, data_source):
 """Return floating-point value that corresponds to given point."""
 x, y = geo_coord[0], geo_coord[1]
 forward_transform = \
 affine.Affine.from_gdal(*data_source.GetGeoTransform())
 reverse_transform = ~forward_transform
 px, py = reverse_transform * (x, y)
 px, py = int(px + 0.5), int(py + 0.5)
 pixel_coord = px, py
 data_array = np.array(data_source.GetRasterBand(1).ReadAsArray())
 return data_array[pixel_coord[0]][pixel_coord[1]]
This isn't ideal since it's point by point querying but it's better than nothing. The problem I'm having, however, is that it's not returning the correct values.
As a sanity check, I used some WRF data that had lat/long layers and queried various points and the resultant lat/long that is supposed to be the nearest coordinates in the WRF data are very far off from where they should be. e.g. inputting 33.77864,-117.33142 returns 38.72556, -115.75209 (the range of this layer is 32.597065 to 39.3944,-121.413025 to -113.04607, so there should be much closer matches). Furthermore, switching lat long as inputs doesn't drastically change the return value (when switched, returns 34.820377,-120.55661). Like I said, not an expert, but to me this seems like I'm using the wrong coordinate system as inputs. Does anyone know a way to convert lat long to the appropriate coordinates to find values in a raster?
I realize this isn't the most efficient way to do a list query on a big db, given the original problem of finding raster values for 1 million points, is there a more GIS-ish way to do this?
 - I couldn't quite follow the steps in your 'sanity check', but it's certainly critical that the points and the raster share the same coordinate system. It sounds like your points are long/lat; have you checked your raster's system? Also you're reading the entire array and calculating the same transform for every point. Pass the array to your function instead of the datasource or try ReadAsArray(xoff=px, yoff=py). – davemfish May 17 '19 at 1:20
3
Assuming that your raster is not skewed, i.e. both the third and fifth values of the Geotransform are zero, and that your points and raster share the same coordinate system (as @davemfish pointed out), you can leverage numpy to access all the values without the need of using a for loop.
The following snippet shows how to calculate the raster values for each point. It does this by calculating the index of each point in the array containing the raster values and then indexing the array to get the value of each point. However, numpy vectorizes this operations, resulting in a much faster result than a loop.
Note: assume that x and y are both 1D numpy arrays containing the longitudes and latitudes, respectively, for your points.
import gdal
import numpy as np
def get_indices(x, y, ox, oy, pw, ph):
 """
 Gets the row (i) and column (j) indices in an array for a given set of coordinates.
 Based on _URL_
 :param x: array of x coordinates (longitude)
 :param y: array of y coordinates (latitude)
 :param ox: raster x origin
 :param oy: raster y origin
 :param pw: raster pixel width
 :param ph: raster pixel height
 :return: row (i) and column (j) indices
 """
 i = np.floor((oy-y) / ph).astype('int')
 j = np.floor((x-ox) / pw).astype('int')
 return i, j
# read data and geotransform
ds = gdal.Open('my_raster.tif', 0)
arr = ds.ReadAsArray()
xmin, xres, xskew, ymax, yskew, yres = ds.GetGeoTransform()
del ds
# calculate indices and index array
indices = get_indices(x, y, xmin, ymax, xres, -yres)
values = arr[indices]
Take into account that all of your points have to be within your raster. Otherwise you will get negative indices or indices out of bounds.
Your Answer
By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy
Not the answer you're looking for? Browse other questions tagged or ask your own question.


text:
Translate simmer | into French | into German | into Italian | into Spanish
Definition of simmer
verb [no object]
(of water or food) stay just below the boiling point while being heated:the goulash was simmering slowly on the stove figurativethe disagreement simmered for years and eventually boiled over [with object] keep (food) just below boiling when cooking or heating it:simmer the sauce gently until thickened be in a state of suppressed anger or excitement:she was simmering with resentment
) become calmer and quieter.
noun [in singular]
a state or temperature just below the boiling point:bring the water to a simmer


text: Training Quiz: Are You A Chemical Engineering Whiz Or Wannabe? Test your skills and see how you rate. Oct 24, 2016 Our quiz asks some tough questions. Think you know about particle attrition, pumps, pollutants and more? Take our quiz and see how you rate. Related Content Quiz: Chemical Engineering Whiz Or Wannabe, Part II Test your knowledge on materials of construction, torque loads, motors and more. Quick Quiz: Test Your Chemical Engineering Knowledge Know something about processes and people? Take our quiz now.


text:
Can your students obtain Captain Newton's treasure? Students will hear a story explaining the history of Science Island and then travel around the classroom to five stations. Each station presents a physical science challenge they need to solve to earn part of the combination to open their team's treasure chest. Stations include experiments with water density, mass, rock streaking, light reflection and launching projectiles with a table top catapult.
For more information or to book a field trip, call _PHONE_, ext. 322, or email _EMAIL_.
Length: 1 hour
MA Curriculum Connection: yes


text:
Measuring tube sliding micrometer - Type: Standard
Measuring tube made of HPVC, telescopic coupling made of brass with high-precision conical measuring stop. Option: Water pressure-tight measuring tubes (double O-ring seal). Used for high-precision measurement axial displacement measurements in soil, rock and in boreholes in concrete structures.
1. Brass telescopic coupling mounted on HPVC measuring tube 2. Measurements in dam 3. Installation of measuring tube with injection packer


Article ID : 00099202 / Last Modified : 18/12/2020
Does Blu-ray Disc media have region codes?
 Blu-ray Disc media does have region codes, but unlike DVD players, the region codes for Blu-ray Disc media use letters instead of numbers to indicate a particular zone or region where the discs can be played.
 The Blu-ray Disc region codes are as follows:
 - Region A: North America, South America, U.S. Territories, Japan, South Korea, Taiwan, and other areas of Southeast Asia
 - Region B: Europe, Africa, Middle East, Australia, and New Zealand.
 - Region C: Asia (except for Japan, Korea, Taiwan, and other areas of Southeast Asia)
 - Region FREE: This is not an official setting, but discs that have the region FREE symbol either have no flag set or have all region flags (A, B & C) set.
 NOTE: The region codes for commercial Blu-ray Disc movies can be found on the back of the Blu-ray Disc case.
 The Blu-ray Disc device or drive will support playback of Blu-ray Disc purchased in the same region, unless otherwise specified in the player or computer documentation. In other words, computers and Blu-ray Disc players purchased in countries / regions corresponding to region A can play back Blu-ray Discs for region A, but cannot play back Blu-ray Discs for region B or region C. (The exception is a disc, player or drive coded as Region FREE.) The same will be true for a computer or Blu-ray Disc player purchased in another region.
 Ultra HD Blu-ray Discs are region-free and can be played back using a player that supports Ultra HD Blu-ray, regardless of the region where they were purchased.
 - The region code settings for a Blu-ray Disc player device cannot be changed.
 - The region code settings for a computer Blu-ray Disc optical drive can only be changed within computers that have software capable of effecting that change, and can only be changed a total of five times. Refer to the Blu-ray Disc player software documentation for instructions on how to change the optical drive region code settings.
 - For most Blu-ray Disc optical drives, whatever the region code the software is set to upon the fifth region code setting change will become the permanent setting. Once this occurs the region code setting cannot be changed again.
 - If the region code of the Blu-ray Disc optical drive has been permanently set to an undesirable region, and you wish to use Blu-ray Discs with a different region code setting, the drive will need to be replaced.


Most Colorful Trippy Dippy Places in the World!
Sedona, Arizona (above) is certainly colorful, but there are places in the world that are so colorful that if you don't have a camera with you, you may weep.
Russian abandoned salt mine
Russia has an abandoned salt mine that is very psychedelic!
Blue Canyon, Death Valley
Death Valley may look barren and very rocky and dead, but the geology in the area shows some extraordinary colors.
Coyote Buttes, Utah
Grand Prismatic Spring, Wyoming
This is the largest hot spring in the US and third largest in the world. It contains the colors of the rainbow. Pigmented archae along the edges of the mineral-rich water create a color prism.
YuanYang Terraces, China
These man-made rice terraces are flooded with water, change colors depending on the season and growing.
Antelope Canyon, Arizona
The Navajo name for this canyon is place where water runs through rock.
Dallol, Ethiopia
Potash, sylvite and salt mining was done here on large scale.
Lake Retba, Senegal
The high salt content in this lake attracts a saline algae that turns the water pink.
Fly Geyser, Nevada
This geothermal geyser. It is partly natural and partly not so, as some attempted well drilling created a situation combined with geothermal to create this colorful and interesting place.
Zhangye Danxia Landform - China
Sandstone and minerals combined for 24,000,000 years to create this amazing scenic and colorful place.
What makes these places so colorful and unusual? Some are artificial, like the terraces in China or the salt mines that were dug in Russia. Others have minerals, geothermal, and geologic oddities to give them life.
These are surely out of this world places worth visiting and please, don't forget the camera!


text:
Movement and habitat selection of the western spadefoot (Spea hammondii) in southern California
Agricultural activity, urban development and habitat alteration have caused the disappearance of the western spadefoot (Spea hammondii) from 80% of its range in southern California. Despite the western spadefoot's continuing decline, little research has been conducted on its natural history. The home range of adult spadefoot is unknown, and their use of upland habitat is poorly understood. Both of these factors are important for the long-term conservation of the species because adult spadefoot spend the majority of their lives away from breeding pools. During the course of this study, radio transmitters were surgically implanted in 15 spadefoot and their movements and habitat use recorded for an average of 272 days. During that time, rain was the only significant predictor of spadefoot movement. The overall mean distance moved between burrow sites was 17.56 m (SD ± 23.96 m, N = 184). The mean distance moved away from the breeding pools was 40.04 m (SD ± 37.42, N = 200). The maximum distance moved away from the breeding pools was 261.99 m. The amount of clay was the only predictor of spadefoot burrow locations, with spadefoot burrowing in friable soil with significantly less clay than random non-spadefoot sites. This study enhances our understanding of a little-studied species and will assist land managers in the formation of effective management plans for the spadefoot.
|Outlet/Publisher:||PLoS ONE 14(10): e0222532.|


text:
FLOWERING TREES IN INDIA(SPRING)
1) GOLDEN SHOWER TREE(Amaltas):
Cassia fistula, known as the golden shower tree and other names, is a flowering plant in the family Fabaceae, native to southern Asia, from southern Pakistan east through India to Myanmar and south to Sri Lanka. It is associated with the Mullai region of Sangam landscape. It is the national tree of Thailand, and its flower is Thailand's national flower. It is also state flower of Kerala in India and of immense importance amongst Malayali population. It is a popular ornamental plant and is an herbal medicine.
In Ayurvedic medicine, golden shower tree is known as aragvadha, meaning "disease killer". The root is considered a very strong purgative, and self-medication or any use without medical supervision is strongly advised against in Ayurvedic texts.
Though its use in herbalism has been attested to for millennia, there has been rather little research in modern times. The purgative action is probably due to abundant dihydroxyanthraquinone and derivatives thereof. Many Fabaceae are a source of potent entheogens and other psychoactivecompounds, e.g. tryptamines; such plants are rarely found among the Caesalpinioideae. There is also a rare case of it being used for analautoeroticism.
The golden shower tree is the national flower of Thailand; its yellow flowers symbolize Thai royalty. A 2006-2007 flower festival, the Royal Flora Ratchaphruek, was named after the tree, which is most often called dok khuen orratchaphruek in Thailand. The golden shower tree is the state flower of Kerala in India. The flowers are of ritual importance in the Vishu festival of the Kerala state of India, and the tree was depicted on a 20 Indian rupees stamp. C. fistula is also featured on a 2003 joint Canadian-Thai design for a 48 cent stamp, part of a series featuringnational emblems. Cassia acutifolia, the pudding-pipe tree, furnishes the cassia pods of commerce.
The tree starts flowering in May month.The streets of old Delhi and the other parts of India can be seen with full bloom of thousands of golden yellow Amaltas.
The Blue Jacaranda, Jacaranda mimosifolia more often known simply as the "Jacaranda", is a sub-tropical tree native to South America that has been widely planted elsewhere because of its beautiful and long-lasting blue flowers. It was introduced to Cape Town by Baron von Ludwigin about 1829. Older sources give it the systematic name Jacaranda acutifolia, but it is nowadays more usually classified as Jacaranda mimosifolia. It is also known as the Black Poui, or as the fern tree. In scientific usage, the name "Jacaranda" refers to the genus Jacaranda, which has many other members, but in horticultural and everyday usage, it nearly always means the Blue Jacaranda.
The Blue Jacaranda has been cultivated in almost every part of the world where there is no risk of frost; established trees can however tolerate brief spells of temperatures down to around −7°C (20°F). In the United States, it grows in parts of Oregon, California, Nevada, Arizona, Texas, and Florida and has been reported to grow in Lafayette, southern Louisiana, the Mediterranean coast of Spain, in southern Portugal(very noticeably in Lisbon), southern Italy (in Naples and Cagliari it's quite easy to come across beautiful specimens). It is regarded as aninvasive species in parts of South Africa and Queensland, Australia, the latter of which has had problems with the Blue Jacaranda preventing growth of native species. Lusaka, the capital of Zambia also sees the growth of many Jacarandas.
The tree grows to a height of 5 to 15 meters (16 to 49 feet). Its bark is thin and grey-brown in color, smooth when the tree is young though it eventually becomes finely scaly. The twigs are slender and slightly zigzag; they are a light reddish-brown in color. The flowers are up to 5 cm long, and are grouped in 30 cm panicles. They appear in spring and early summer, and last for up to two months. They are followed by woody seed pods, about 5 cm in diameter, which contain numerous flat, winged seeds. The Blue Jacaranda is cultivated even in areas where it rarely blooms, for the sake of its large compound leaves. These are up to 45 cm long and bi-pinnately compound, with leaflets little more than 1 cm long.
In the USA, 30 miles east of Los Angeles where winter temps can dip to 10 degrees F (-12 C) for short several-hour periods, the mature tree survives with little or no visible damage. Profuse flowering is regarded as magnificent by some and quite messy by others. The unusually shaped, tough pods, which are about 2 to 3 inches (5-7.5 cm) across, are often gathered, cleaned and decorated for use on Christmas trees and in dried arrangements.
JACARANDA FESTIVAL AT GRAFTON:
The city of Grafton on the north coast of New South Wales, Australia, is also famous for its Jacarandas. Each year in late October and early November the city has a Jacaranda festival during the period of full bloom. A street parade, local public holiday and a series of events are held.It looks like the whole city of Grafton is dressed in purple when it blooms, an spectacular view for the life time.One should be present their to witness the glory of the Jacaranda festival. A Jacaranda Queen and Jacaranda Princess are named at a formal ball.
The history portrays the early festival in 1932 when the festival made its debut in a highly illuminated Jacaranda Avenue which formed the venue for many festivals which followed.
The tree canopies in some of Sydney's north shore and harbour suburbs in the east have a purple glow during late spring.
The main street of the town of Red Cliffs, Victoria, Australia (part of the Calder Highway) was named Jacaranda Street in the original town plans of the early 1920s and Jacaranda trees have since been planted to line this street.
Even in India Jacaranda trees can be found in almost all the parts of the country which blooms in the month of March and stays for couple of weeks.
Tabebuia chrysotricha (Pronunciation: tab-eh-BOO-yuh kriss-oh-TRICK-uh), commonly known as Golden Trumpet Tree, is an evergreen tree from Brazil. It is very similar to and often confused with Tabebuia ochracea. In Portuguese it is called "Ipê amarelo" and is considered the national tree of Brazil.
T. chrisotricha grows to a height of 25 to 35 feet, with a spread of 25 to 35 feet. It has very showy golden-yellow to red flowers in the spring. These are rich in nectar and thus the tree is a useful honey plant. While it is not especially popular with hummingbirds, some of these - e.g.Glittering-bellied Emerald (Chlorostilbon lucidus) and White-throated Hummingbird (Leucochloris albicollis) - seem to prefer them over the flowers of other Tabebuia species.
Tabebuia is widely used as ornamental tree in the tropics in landscaping gardens, public squares, and boulevards due to its impressive and colorful flowering. Many flowers appear on still leafless stems at the end of the dry season, making the floral display more conspicuous. They are useful as honey plants for bees, and are popular with certain hummingbirds. Naturalist Madhaviah Krishnan on the other hand once famously took offense at ipé grown in India, where it is not native.
- "Trumpet tree" redirects here. This term is occasionally used for the Shield-leaved Pumpwood (Cecropia peltata).Tabebuia is a neotropical genus of about 100 species in the tribe Tecomeae of the family Bignoniaceae. The species range from northern Mexico and southern Florida south to northern Argentina, including the Caribbean islands of Hispaniola (Dominican Republic, Haiti), Jamaicaand Cuba. The generic name is derived from words used for the trees by the indigenous peoples of Brazil.Well-known common names include Ipê (commonly misspelled "epay"), Poui, trumpet trees and pau d'arco.Tabebuia is a notable flowering tree. The flowers are 3 to 11 cm (1 to 4 in.) wide and are produced in dense clusters. They present a cupular calyx campanulate to tubular, truncate, bilabiate or 5-lobed. The outside texture of the flower tube is either glabrous or pubescent.4)TABEBUIA IMPETIGINOSA:Tabebuia impetiginosa, Pink Ipê or Pink Lapacho is a native Bignoniaceae tree of America, distributed from northern Mexico south to northern Argentina. It is a common tree in Argentina's northeastern region, as well as in southeastern Bolivia. It is said to be indigenous to Trinidad and Tobago.It is a conspicuous and well-known species with a long history of human use. Consequently it has a range of local names ipê-cavatã,


QL Shell from a command prompt by issuing the command:
shell> mysqlsh
MySQL Shell provides two scripting language modes, JavaScript and Python, in addition to a native SQL mode. Throughout this guide MySQL Shell is used primarily in JavaScript mode . When MySQL Shell starts it is in JavaScript mode by default. Switch modes by issuing \js for JavaScript mode, \py for Python mode, and \sql for SQL mode. Ensure you are in JavaScript mode by issuing the \js command, then execute:
mysql-js> dba.deploySandboxInstance(3310)
Note
Terminating commands with a semi-colon is not required in JavaScript and Python modes.
The argument passed to deploySandboxInstance() is the TCP port number where the MySQL Server instance listens for connections. By default the sandbox is created in a directory named $HOME/mysql-sandboxes/port on Unix systems. For Microsoft Windows systems the directory is %userprofile%\MySQL\mysql-sandboxes\port.
The root password for the instance is prompted for.
Important
Each instance has its own password. Defining the same password for all sandboxes in this tutorial makes it easier, but remember to use different passwords for each instance in production deployments.
To deploy further sandbox server instances, repeat the steps followed for the sandbox instance at port 3310, choosing different port numbers. For each additional sandbox instance issue:
mysql-js> dba.deploySandboxInstance(port_number)
To follow this tutorial, use port numbers 3310, 3320 and 3330 for the three sandbox server instances. Issue:
mysql-js> dba.deploySandboxInstance(3320)
mysql-js> dba.deploySandboxInstance(3330)
Creating the Sandbox InnoDB Cluster
The next step is to create the InnoDB cluster while connected to the seed MySQL Server instance. The seed instance contains the data that you want to replicate to the other instances. In this example the sandbox instances are blank, therefore we can choose any instance.
Connect MySQL Shell to the seed instance, in this case the one at port 3310:
mysql-js> \connect root@localhost:3310
The \connect MySQL Shell command is a shortcut for the shell.connect() method:
mysql-js> shell.connect('root@localhost:3310')
Once you have connected, AdminAPI can write to the local instance's option file. This is different to working with a production deployment, where you would need to connect to the remote instance and run the MySQL Shell application locally on the instance before AdminAPI can write to the instance's option file.
Use the dba.createCluster() method to create the InnoDB cluster with the currently connected instance as the seed:
mysql-js> var cluster = dba.createCluster('testCluster')
The createCluster() method deploys the InnoDB cluster metadata to the selected instance, and adds the instance you are currently connected to as the seed instance. The createCluster() method returns the created cluster, in the example above this is assigned to the cluster variable. The parameter passed to the createCluster() method is a symbolic name given to this InnoDB cluster, in this case testCluster.
Tip
If the instance has super_read_only=ON then you might need to confirm that AdminAPI can set super_read_only=OFF. See Super Read-only and Instances for more information.
Adding Instances to an InnoDB Cluster
The next step is to add more instances to the InnoDB cluster. Any transactions that were executed by the seed instance are re-executed by each secondary instance as it is added. This tutorial uses the sandbox instances that were created earlier at ports 3320 and 3330.
The seed instance in this example was recently created, so it is nearly empty. Therefore, there is little data that needs to be replicated from the seed instance to the secondary instances. In a production environment, where you have an existing database on the seed instance, you could use a tool such as MySQL Enterprise Backup to ensure that the secondaries have matching data before replication starts. This avoids the possibility of lengthy delays while data replicates from the primary to the secondaries. See Section 17.4.4, "Using MySQL Enterprise Backup with Group Replication".
Add the second instance to the InnoDB cluster:
mysql-js> cluster.addInstance('root@localhost:3320')
The root user's password is prompted for.
Add the third instance:
mysql-js> cluster.addInstance('root@localhost:3330')
The root user's password is prompted for.
At this point you have created a cluster with three instances: a primary, and two secondaries.
Tip
You can only specify localhost in addInstance() if the instance is a sandbox instance. This also applies to the implicit addInstance() after issuing createCluster().
Persisting the Configuration
Once the sandbox instances have been added to the cluster, the configuration required for InnoDB cluster must be persisted to each of the instance's option files. Connect to each instance.
mysql-js> \connect instance
Issue dba.configureLocalInstance(instance).
mysql-js> dba.configureLocalInstance('instance')
You are prompted for the instance's password. The configuration changes are persisted to the instance.
Important
If dba.configureLocalInstance() is not issued when connected to the instance, the configuration is not persisted to the option file. This does not stop the instance from initially joining a cluster, but it does mean that the instance cannot rejoin the cluster automatically, for example after being stopped.
Repeat the process of connecting to each sandbox instance you added to the cluster and persisting the configuration. For this example we added sandbox instances at ports 3310, 3320 and 3330. Therefore issue this for ports 3320 and 3330:
mysql-js> \connect root@localhost:port_number)
mysql-js> dba.configureLocalInstance('root@localhost:port_number)

To check the cluster has been created, use the cluster instance's status() function. See Checking the InnoDB Cluster Status.
Once you have your cluster deployed you can configure MySQL Router to provide high availability, see Section 20.3, "Using MySQL Router with InnoDB Cluster".
20.2.5 Production Deployment of InnoDB Cluster
When working in a production environment, the MySQL server instances which make up an InnoDB cluster run on multiple host machines as part of a network rather than on single machine as described in Section 20.2.4, "Sandbox Deployment of InnoDB Cluster". Before proceeding with these instructions you must install the required software to each machine that you intend to add as a server instance to your cluster, see Section 20.2.3, "Methods of Installing".
The following diagram illustrates the scenario you work with in this section:
Figure 20.2 Production Deployment
Three MySQL servers are grouped together as a production InnoDB cluster. One of the servers is the primary instance, and the other two are secondary instances. The IP address for the primary server is 139.59.177.10, and the IP addresses for the two secondary instances are 139.59.177.11 and 139.59.177.12. MySQL Router connects a client application to the primary instance. The admin capability in MySQL Shell interacts directly with the production InnoDB cluster.
Important
Unlike a sandbox deployment, where all instances are deployed locally to one machine, for a production deployment you must connect to each machine and run MySQL Shell locally before issuing dba.configureLocalInstance() on the instance. This ensures that any configuration changes are persisted into the option file on the instance. This also requires that you have access to the server and the required permissions to execute MySQL Shell.
To pass a server's connection information to AdminAPI use URI type strings. See Section 18.2.1.1, "Connecting using a URI String" for more information.
User Privileges
The user account used to administer an instance does not have to be the root account, however the user needs to be assigned full read and write privileges on the InnoDB cluster metadata tables in addition to full MySQL administrator privileges (SUPER, GRANT OPTION, CREATE, DROP and so on). To give the user your_user the privileges needed to administer InnoDB cluster issue:
GRANT ALL PRIVILEGES ON mysql_innodb_cluster_metadata.* TO your_user@'%' WITH GRANT OPTION;
GRANT RELOAD, SHUTDOWN, PROCESS


text:
In this paper we present a new Eulerian phase-based motion magnification technique using the Hermite Transform (HT) decomposition that is inspired in the Human Vision System (HVS). We test our method in one sequence of the breathing of a newborn baby and on a video sequence that shows the heartbeat on the wrist. We detect and magnify the heart pulse applying our technique. Our motion magnification approach is compared to the Laplacian phase based approach by means of quantitative metrics (based on the RMS error and the Fourier transform) to measure the quality of both reconstruction and magnification. In addition a noise robustness analysis is performed for the two methods.
In this paper we present an Eulerian motion magnification technique using a spatial decomposition based on the Steered Hermite Transform (SHT) which is inspired in the Human Vision System (HVS). We test our method in one sequence of the breathing of a newborn baby and on a video sequence that shows the heartbeat on the wrist. We estimate the heart pulse applying the Fourier transform on the magnified sequences. Our motion magnification approach is compared to the Laplacian and the Cartesian Hermite decomposition strategies by means of quantitative metrics.
Heart diseases are one of the most important causes of death in the Western world. It is, then, important to implement algorithms to aid the specialist in analyzing the heart motion. We propose a new strategy to estimate the cardiac motion through a 3D optical flow differential technique that uses the Steered Hermite transform (SHT). SHT is a tool that performs a decomposition of the images in a base that model the visual patterns used by the human vision system (HSV) for processing the information. The 3D + t analysis allows to describe most of motions of the heart, for example, the twisting motion that takes place on every beat cycle and to identify abnormalities of the heart walls. Our proposal was tested on two phantoms and on two sequences of cardiac CT images corresponding to two different patients. We evaluate our method using a reconstruction schema, for this, the resulting 3D optical flow was applied over the volume at time t to obtain a estimated volume at time t + 1. We compared our 3D optical flow approach to the classical Horn and Shunk's 3D algorithm for different levels of noise.
We present an Eulerian motion magnification technique with a spatial decomposition based on the Hermite
Transform (HT). We compare our results to the approach presented in.1 We test our method in one sequence of
the breathing of a newborn baby and on an MRI left ventricle sequence. Methods are compared using quantitative
and qualitative metrics after the application of the motion magnification algorithm.
Medical image watermarking is an open area for research and is a solution for the protection of copyright and intellectual property. One of the main challenges of this problem is that the marked images should not differ perceptually from the original images allowing a correct diagnosis and authentication. Furthermore, we also aim at obtaining watermarked images with very little numerical distortion so that computer vision tasks such as segmentation of important anatomical structures do not be impaired or affected. We propose a preliminary watermarking application in cardiac CT images based on a perceptive approach that includes a brightness model to generate a perceptive mask and identify the image regions where the watermark detection becomes a difficult task for the human eye. We propose a normalization scheme of the image in order to improve robustness against geometric attacks. We follow a spread spectrum technique to insert an alphanumeric code, such as patient's information, within the watermark. The watermark scheme is based on the Hermite transform as a bio-inspired image representation model. In order to evaluate the numerical integrity of the image data after watermarking, we perform a segmentation task based on deformable models. The segmentation technique is based on a vector-value level sets method such that, given a curve in a specific image, and subject to some constraints, the curve can evolve in order to detect objects. In order to stimulate the curve evolution we introduce simultaneously some image features like the gray level and the steered Hermite coefficients as texture descriptors. Segmentation performance was assessed by means of the Dice index and the Hausdorff distance. We tested different mark sizes and different insertion schemes on images that were later segmented either automatic or manual by physicians.
The left ventricle (LV) segmentation plays an important role in a subsequent process for the functional analysis of the LV. Typical segmentation of the endocardium wall in the ventricle excludes papillary muscles which leads to an incorrect measure of the ejected volume in the LV. In this paper we present a new variational strategy using a 2D level set framework that includes a local term for enhancing the low contrast structures and a 2D shape model. The shape model in the level set method is propagated to all image sequences corresponding to the cardiac cycles through the optical flow approach using the Hermite transform. To evaluate our strategy we use the Dice index and the Hausdorff distance to compare the segmentation results with the manual segmentation carried out by the physician.
Medical image analysis has become an important tool for improving medical diagnosis and planning treatments. It involves volume or still image segmentation that plays a critical role in understanding image content by facilitating extraction of the anatomical organ or region-of-interest. It also may help towards the construction of reliable computer-aided diagnosis systems. Specifically, level set methods have emerged as a general framework for image segmentation; such methods are mainly based on gradient information and provide satisfactory results. However, the noise inherent to images and the lack of contrast information between adjacent regions hamper the performance of the algorithms, thus, others proposals have been suggested in the literature. For instance, characterization of regions as statistical parametric models to handle level set evolution. In this paper, we study the influence of texture on a level-set-based segmentation and propose the use of Hermite features that are incorporated into the level set model to improve organ segmentation that may be useful for quantifying left ventricular blood flow. The proposal was also compared against other texture descriptors such as local binary patterns, Image derivatives, and Hounsfield low attenuation values.
This article describes a perceptual approach to calculate the optical flow estimation of the left ventricle in a short axis view of the heart in computer tomography images. The method is based on the the Hermite transform which is an image representation model that incorporates some of the more important properties of the first stages of the human visual system. Our optical flow estimation approach incorporates a differential approach that uses the steered Hermite coefficients as local constraints and uses the implicit multiresolution scheme of the Hermite transform to compute large displacements. It also involves several of the constraints seen in the current differential methods which allows obtaining an accurate optical flow. We use the anatomic short axis view of the heart to calculate the optical flow estimation instead of the original CT images of the axial plane. This view allows visualizing the left ventricle like a circular structure, which is more suitable for visualization of the left ventricle motion.
Considering the importance of studying the movement of certain cardiac structures such as left ventricle and myocardial wall for better medical diagnosis, we propose a method for motion estimation and image segmentation in sequential Computed Tomography images. Two main tasks are tackled. The first one consists of a method to estimate the heart's motion based on a bio-inspired image representation model. Our proposal for optical flow estimation incorporates image structure information extracted from the steered Hermite transform coefficients that is later used as local motion constraints in a differential estimation approach. The second task deals with cardiac structure segmentation in time series of cardiac images based on deformable models. The goal is to extend active shape models (ASM) of 2D objects to the problem of 3D (2D + time) cardiac CT image modeling. The segmentation is achieved by constructing a point distribution model (PDM) that encodes the spatio-temporal variability of a training set. Combination of both motion estimation and image segmentation allows isolating motion in cardiac structures of medical interest such as ventricle walls.